【发布时间】:2019-12-15 02:49:49
【问题描述】:
在工作中,我们从共享收件箱发送电子邮件。电子邮件将进入用户自己的已发送项目,而不是共享收件箱。
我写了一些 VBA 代码来解决这个问题。我们正在迁移到 Outlook 365,但代码在那里不起作用。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If TypeName(Item) = "MailItem" Then 'If Item is a MailItem
If Item.SentOnBehalfOfName <> "" Then 'And if Item is Sent on Behalf of an inbox
'Save the sent email in the Sent Items folder for the inbox in question
Item.SaveSentMessageFolder GetNamespace("MAPI").Folders(Item.SentOnBehalfOfName).Folders("Sent Items")
End If
End If
End Sub
我试过了
msgbox GetNamespace("MAPI").Folders(Item.SentOnBehalfOfName).Folders("Sent Items").Name
它给出了文件夹的名称,但已发送的项目没有去那里。
我创建了一个“测试”文件夹并保存到忽略 Item.SentOnBehalfOfName 的文件夹中,如果“测试”文件夹在我自己的收件箱中,但如果它在共享收件箱中,则此方法有效。
我尝试将代码更改为使用 Set & 以包含 Application,如下所示。
Set Item.SaveSentMessageFolder = Application.GetNamespace("MAPI").Folders(Item.SentOnBehalfOfName).Folders("Sent Items")
【问题讨论】:
-
你有没有尝试在项目提交前设置属性?