Vba 手动调用Outlook代码时,Outlook代码正常工作,但应用程序\u ItemSend出现问题

Vba 手动调用Outlook代码时,Outlook代码正常工作,但应用程序\u ItemSend出现问题,vba,outlook,Vba,Outlook,我有一个代码,用于检查邮件收件人,查看在通讯簿中为收件人设置的组织,并依赖于该代码设置项目的“SentonBehalfName”属性。如果收件人为客户2工作,他将收到来自“我们爱你”的邮件_client2@domain.com“ 我在通过功能区中的按钮发送邮件之前调用代码,该按钮调用以下子项: Sub Signatur() Dim olApp As Outlook.Application Dim objMail As Outlook.MailItem Set olApp = Outlook.

我有一个代码,用于检查邮件收件人,查看在通讯簿中为收件人设置的组织,并依赖于该代码设置项目的“SentonBehalfName”属性。如果收件人为客户2工作,他将收到来自“我们爱你”的邮件_client2@domain.com“

我在通过功能区中的按钮发送邮件之前调用代码,该按钮调用以下子项:

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
如果我想知道要选择哪个邮件地址,我会这样做

在这个OutlookSession的itemSend部分,我也调用了相同的子类

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

现在有一个有趣的部分:尽管文件夹部分总是工作的(只有在SentonBehalfName以前工作过时才能工作),但SentonBehalfName只能工作“一半”。在预览行中,发送的邮件显示为“we_serve”_client2@domain.com“,但当我打开邮件时,它说是我寄的。客户总是只看到我的地址,也回答我的地址-我不想

同一个代码根据调用的位置而产生不同的结果,这怎么可能呢?更改项目发送部分中的SendOnRepresentation字段是否有问题

谢谢你的意见! Max

为什么它不起作用

在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。

我不确定这是否有趣,或者我是否应该让位于绝望。。。代码确实以两种方式改变了行为:1。发送方现在已确定2。“SaveSentMessageFolder”不再工作。。。顺便说一下,对代码的两个更改:-不需要在那里设置sentonbehalfname,这在以前已经完成了。-added Cancel=True,因此发送已删除邮件时不会出现错误谢谢Max@Max我是共享邮箱的所有者。已发送邮件位于已发送邮件的共享邮箱中。我的代码始终将已发送邮件保存到相关共享邮箱的收件箱中;在你的代码中,这个函数不再工作了——这真是一件奇怪的事情!谢谢,这实际上解决了我在
ItemSend
中设置
SendUsingAccount
最近停止工作的问题。哦,但这太他妈的丑陋了,我不确定我能活下去,因为我知道每次发电子邮件都会发生这种事。
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