5

我在 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 代码上编码以发送电子邮件以允许运行规则?

4

2 回答 2

1

http://www.slipstick.com/outlook/email/choosing-the-folder-to-save-a-sent-message-in/

“VBA 不适用于使用其他应用程序中的文件、发送命令或 Windows 资源管理器中的发送到命令创建的消息。发送到命令使用 Simple MAPI,它绕过了 Outlook 功能。”

实际上并没有说规则,但您已经看到绕过规则。

如果您真的想使用规则,请让 Outlook 打开 Excel。

于 2013-03-04T16:33:30.440 回答
0

为什么不使用新的宏创建一个新的电子表格:

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 = "New_email@address"  ' Only change to your code
            .BCC = ""  
            .Subject = TempFNUser  
            .ReadReceiptRequested = False  
            .Body = userEmailText  
            .Attachments.Add FullTempNameUser  
            .Send    'Use .Send or .Display  
End With  

人们将使用旧表格填写他们的数据,宏驱动程序将使用此代码来触发电子邮件。

于 2013-02-26T12:00:37.173 回答