我正在尝试整理一个脚本,该脚本将使用Outlook规则将基于模板的电子邮件发送回Reply-To电子邮件地址。我发现使用Item.ReplyRecipients(1)在某些电子邮件中效果很好,其中电子邮件地址直接存储在回复字段中。
例如标题有:
回复:EmailAddress@gmail.com
然而,其他电子邮件的标题如下所示。在这种情况下,Item.ReplyRecipients(1)仅返回Bob Smith而不是存储在< >
回复:“Bob Smith”< EmailAddress@gmail.com>
我不知道在这种情况下如何获取实际的电子邮件地址。完整的脚本在
下面Sub BillAutoReplywithTemplate(Item As Outlook.MailItem)
Dim oRespond As Outlook.MailItem
Set oRespond =
Application.CreateItemFromTemplate("C:\Users\Me\Desktop\Outlook
Templates\TemplateTest.oft")
With oRespond
.Recipients.Add Item.ReplyRecipients(1)
.Subject = "Re: " & Item.Subject
.HTMLBody = oRespond.HTMLBody & _
vbCrLf & "---Original Message Below---" & vbCrLf & _
Item.HTMLBody
.Send
End With
Set oRespond = Nothing
End Sub
答案 0 :(得分:0)
ReplyRecipients(1)将返回一个Recipient对象的实例,您将其传递给Recipients.Add,该对象需要一个字符串。因此,VBA通过读取默认属性(Name)将对象转换为字符串。改变行
.Recipients.Add Item.ReplyRecipients(1)
到
if Item.ReplyRecipients.Count > 0 Then
.Recipients.Add Item.ReplyRecipients(1).Address
End If