我在 Excel VBA 中有以下基本电子邮件代码:
Dim OutAppUser As Object
Dim OutMailUser As Object
Set OutAppUser = CreateObject("Outlook.Application")
Set OutMailUser = OutAppUser.CreateItem(0)
With OutMailUser
.To = Range("Ctl_Req_Email").Value
.CC = ""
.BCC = ""
.Subject = TempFNUser
.ReadReceiptRequested = False
.Body = userEmailText
.Attachments.Add FullTempNameUser
.Send 'Use .Send or .Display
End With
带有此宏的工作簿分布广泛,但电子邮件宏的实际驱动仅由少数人完成,现在其所在的电子邮件地址已更改。我为“发送邮件后”创建了一条 Outlook 规则,其中为新电子邮件地址添加了“抄送”,作为外部重定向电子邮件的一种方式。该规则在手动测试电子邮件上完美运行,但似乎不适用于从 Excel VBA 代码发送的电子邮件。是否需要在 VBA 代码上编写一些额外的代码来发送电子邮件以便允许规则运行?
最佳答案
http://www.slipstick.com/outlook/email/choosing-the-folder-to-save-a-sent-message-in/
“VBA 不适用于使用其他应用程序中的文件、发送命令或 Windows 资源管理器中的发送到命令创建的消息。发送到命令使用简单 MAPI,这绕过 Outlook 功能。”
实际上并没有说规则,但您已经看到规则被绕过。
如果您确实想使用规则,请让 Outlook 打开 Excel。
关于excel - Outlook 2010 规则是否对从 Excel VBA 发送的邮件运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574317/