Outlook 自定义表单:以 HTML 格式发送用户定义的字段



我已经断断续续地为这个问题苦苦挣扎了大约 3 周了。 我创建了一个 Outlook 自定义表单,它允许用户在我创建的用户定义字段中键入内容(我们称之为 myField1myField2)以及标准的收件人抄送主题日期字段。

用户填写表单,单击"发送",而不是将自定义表单发送给收件人,我希望它发送(HTML?)我的用户定义字段并关闭表单窗口。 这允许收件人查看和打印输入的字段,并在 Outlook 的预览窗格中呈现可读性。 我应该为我正在尝试做的事情探索 Outlook 区域表单吗? 我现在拥有的代码不会生成错误,但它不执行任何操作!- 表单作为表单发送。 我只能访问 Outlook 2010 中的脚本编辑器。 非常令人沮丧..

Function Item_Send()
'Dim olApp As Outlook.Application
'Dim objNS As Outlook.NameSpace
'Dim mailItem As Outlook.mailItem
 Set olApp = CreateObject("Outlook.Application")
'Outlook.ApplicationClass _app = new Outlook.ApplicationClass();
'Outlook.Application olApp = (Outlook.Application)_app
'Outlook.NameSpace olNameSpace = _app.GetNamespace("MAPI")
'Create mail item
'Set objMail = myOlApp.GetItem(OlItemType.olMailItem)
 Set mailItem = Application.CreateItem(olMailItem)
'Outlook.mailItem mailItem = (Outlook.mailItem)olApp.CreateItem(Outlook.OlItemType.olMailItem)
'With mailItem
   mailItem.Subject = item.Subject
   mailItem.Recipients.Add ("emails that I typed into the To: box")
   mailItem.Body = "This is the Body of an e-mail message"
  'Set body format to HTML
   mailItem.BodyFormat = 2
   mailItem.HTMLBody = "<HTML><H2>The body of this message will appear in HTML.</H2><BODY>Type the message text here. </BODY></HTML>"
   mailItem.Send()
'End With
'Set olMailItem = Nothing
Set olApp = Nothing
End Function

您仍然需要生成包含自定义字段的名称和值的 HTML 标记。 只需要一些明智的字符串构建,你就会得到你想要的内容。 您可以通过邮件项访问自定义字段。UserProperties.Find 方法。 为每个字段调用该方法,并从 UserProperty.Name 和 填充 HTML。值属性。

看起来您需要将用户属性(与自定义控件关联)值包含在消息正文中。若要完成作业,可以处理应用程序类的 ItemSend 事件,该事件在用户通过检查器发送Microsoft Outlook 项目时(在关闭检查器之前,但在用户单击"发送"按钮之后)或当 Outlook 项目的 Send 方法(如 MailItem)发送时触发。 在程序中使用。我想你已经这样做了,如果是这样的话......

首先,不需要在 ItemSend 事件处理程序中创建新的 Outlook APplication 实例:

Function Item_Send()
 'Set olApp = CreateObject("Outlook.Application")
 Set olApp = Application

请改用 Application 属性。

其次,ItemSend事件处理程序应如下所示:

Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean) 

无需创建新的 MailItem 实例,您已经可以访问现有项目。正在发送的项作为参数传递给处理程序。

最新更新