我的VBA代码将从.TO对象获取电子邮件地址,并自动发送另一封电子邮件。问题在于地址是“低语”时,其形状不是john.smith@email.dot,而是John Smith。然后,对于VBA代码,.TO对象为空。是否可以绕过它?
Dim objMail As Outlook.MailItem
Dim objNewMail1 As Outlook.MailItem
Dim strTo As String
strTo = objMail.To
Set objNewMail1 = Application.CreateItem(olMailItem)
With objNewMail1
.To = strTo
.Send
End With
答案 0 :(得分:2)
请勿使用To
/ CC
/ BCC
属性-通常,它们仅包含显示名称,而不包含电子邮件地址。
遍历MailItem.Recipients
集合中的所有收件人并使用Recipient.Address
属性-请记住,您可能有一个EX类型的地址,如果是Exchange,则是SMTP,您可能必须使用{{ 1}}(Recipient.AddressEntry.GetExchangeUser().PrimarySmtpAddress
将为非Exchange地址条目返回null)。
收件人类型(GetExchangeUser
/ olTo
/ olCC
)存储在olBCC
属性中。
Recipient.Type