我现在已经在这个问题上挣扎了大约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
答案 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实例,您已经可以访问现有项目。正在发送的项目作为参数传递给处理程序。