Outlook自定义表单:在HTML中发送用户定义的字段

时间:2016-02-01 22:30:11

标签: html forms vba email outlook

我现在已经在这个问题上挣扎了大约3个星期。我创建了一个Outlook自定义表单,让用户输入我已创建的用户自定义字段(让我们称之为 myField1 myField2 )以及标准 CC 主题日期字段。

用户填写表单,单击“发送”,而不是将自定义表单发送给收件人,我希望它发送(HTML?)我的用户定义字段并关闭表单窗口。这允许收件人查看和打印输入的字段,并在Outlook的预览窗格中呈现可读的字段。我应该探索Outlook Region表单,以便我尝试做什么?我现在的代码并没有产生错误,但它没有做任何事情! - 表单作为表单发送。我有权访问的是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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

$('div.caption span.id').text().replace(':','')

改为使用Function Item_Send() 'Set olApp = CreateObject("Outlook.Application") Set olApp = Application 属性。

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

ItemSend

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