我有一个创建和保存草稿电子邮件的 VBA 脚本。要添加收件人,它会从链接的 Excel 表中提取一个字符串并将其添加到 Recipients 对象。
对于具有单个收件人的电子邮件,这就像一个魅力。用户需要做的就是打开草稿,花 5 秒钟查看它,然后点击发送。
多个联系人同时出现此问题(例如“a@aol.com; b@aol.com; c@aol.com”)。当用户点击发送时,Outlook 将弹出一个没有任何建议的检查名称对话框。用户可以通过单击 To 字段并输入虚拟分号来触发自动解析来解决此问题。我想避免这种情况,因为这个过程一次会创建超过一百封电子邮件,需要单独审查。
在网上环顾四周,我找到并尝试了返回 false 的 Recipients.ResolveAll。我怀疑原因是 Outlook 试图一次解析整个收件人字符串,而不是单独解析。所以我的问题是:如何让 Outlook 停止显示此检查名称对话框?我是否需要遍历我的电子邮件字符串并解析出各个电子邮件?
Sub CreateEmail(id as Integer)
Dim OlApp As Outlook.Application
Dim ObjMail As Outlook.MailItem
Dim Recipients As Outlook.Recipients
Dim CurrentRecipient As Outlook.Recipient
Set OlApp = CreateObject("Outlook.Application")
Set ObjMail = OlApp.CreateItem(olMailItem)
Set Recipients = ObjMail.Recipients
Dim StrEmailTo As String
StrEmailTo = CurrentDb.OpenRecordset( _
"Select [Emails] from LU_Contacts where id=" & id & ";").Fields(0)
Set CurrentRecipient = Recipients.Add(StrConv(StrEmailTo, 3))
CurrentRecipient.Type = olTo
...
Objmail.Save