我有一个代码,用于检查邮件的收件人,查看在收件人的通讯簿中设置的组织,并依赖于该项设置“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字段是否有问题?
感谢任何输入! 最大
答案 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。