VBA Outlook从电子邮件中获取“回复”电子邮件地址

时间:2017-05-10 12:52:01

标签: vba email outlook

我正在尝试整理一个脚本,该脚本将使用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

1 个答案:

答案 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