Outlook代码在手动调用时正在工作,但是却给Application_ItemSend带来了麻烦

时间:2013-10-22 13:30:08

标签: outlook-vba

我有一个代码,用于检查邮件的收件人,查看在收件人的通讯簿中设置的组织,并依赖于该项设置“SentOnBehalfOfName”属性。如果收件人正在为client2工作,他将从“we_love_to_serve_client2@domain.com”收到邮件。

我在通过功能区中的按钮发送邮件之前调用代码,调用此Sub:

Sub Signatur()
Dim olApp As Outlook.Application
 Dim objMail As Outlook.MailItem
 Set olApp = Outlook.Application
 Set objMail = Application.ActiveInspector.CurrentItem
Call Signatur_auto(objMail)
End Sub

如果我想知道将选择哪个邮件地址,我会这样做。

在thisOutlookSession的itemSend-section中,我也调用了相同的子

Call Signatur_auto(Item)

Signatur_auto的一部分(我不复制,问题已经太长了......)正在处理SentOnBehalfOfName属性,另一部分是将项目放入正确的文件夹。根据SentOnBehalfOfName属性选择文件夹。

现在出现了一个有趣的部分:尽管文件夹部分始终正常工作(只能在SentOnBehalfOfName之前工作时),但SentOnBehalfOfName只能工作“一半”。在预览行中,发送的邮件显示为“we_serve_client2@domain.com”,但是当我打开邮件时,它说它是由我发送的。客户总是只看到我的地址,也回答我的地址 - 我不想要......

如何,相同的代码具有不同的结果取决于它的调用位置?更改项目send-section中的sendonbehalf字段是否有问题?

感谢任何输入! 最大

1 个答案:

答案 0 :(得分:2)

为什么它不起作用?

在ItemSend中试试。

Dim copiedItem As mailItem

Set copiedItem = Item.Copy
copiedItem.SentOnBehalfOfName = "we_love_to_serve_client2@domain.com"
copiedItem.Send    
Item.delete
Cancel = True ' In case your setup generates an error message as described in the comments

为什么会这样?出现“copiedItem.Send”绕过ItemSend。