我经常代表其他用户发送电子邮件。我希望每次从该用户/代表该用户发送电子邮件时,使用VBA自动CC该用户。
我不熟悉VBA for Outlook,但我想你可以写一个if语句,说“如果从UserX发送消息,cc用户X”。代码应该在代表发送电子邮件时自动运行。
答案 0 :(得分:1)
SentOnBehalfOfName很棘手。在项目发送之前,它通常是空的。
使用ThisOutlookSession中的代码,你应该发现它是空白的。
Private Sub Application_ItemSend(ByVal item As Object, Cancel As Boolean)
Dim myRecipient As Recipient
Debug.Print " item.SentOnBehalfOfName - " & item.SentOnBehalfOfName
If item.SentOnBehalfOfName = "someone@somewhere.com" Then
Set myRecipient = item.Recipients.Add("Someone Else")
myRecipient.Type = olCC
item.Recipients.ResolveAll
End If
End Sub
至少有一种解决方法:
Sub createSentOnBehalf()
Dim objMsg As mailitem
Set objMsg = Application.CreateItem(olMailItem)
objMsg.SentOnBehalfOfName = "someone@somewhere.com"
objMsg.Display
Set objMsg = Nothing
End Sub
Sub replySentOnBehalf()
Dim objMsg As mailitem
Set objMsg = ActiveInspector.currentItem.reply
objMsg.SentOnBehalfOfName = "someone@somewhere.com"
objMsg.Display
Set objMsg = Nothing
End Sub
编辑:刚刚意识到你可以在创建/回复时设置cc,而不是等到ItemSend。
Edit2:从itemsend移动cc代码
Sub createSentOnBehalf()
Dim objMsg As mailitem
Dim myRecipient As Recipient
Set objMsg = Application.CreateItem(olMailItem)
objMsg.SentOnBehalfOfName = "someone@somewhere.com"
Set myRecipient = objMsg.Recipients.Add("Someone Else")
myRecipient.Type = olCC
objMsg.Recipients.ResolveAll
objMsg.Display
Set objMsg = Nothing
End Sub
答案 1 :(得分:0)
这将是你想要的(这是第一个谷歌的结果"总是CC自己的Outlook") http://www.extendoffice.com/documents/outlook/1108-outlook-auto-cc.html
然后弹出另一个对话框。
(1.)在步骤1中,检查指定的帐户框。在第2步中,请单击指定的单词。 (2.)然后单击“帐户”下拉列表以选择要应用此规则的帐户。
(1。)在此向导中,选中“将消息发送给人员或公共组”框,然后在步骤2中单击人员或公共组。
(2.)在“规则地址”对话框中,双击cc收件人,将地址添加到“收件人”按钮;文本框,(如果我想抄送自己,我会在To->列中选择或输入我自己的电子邮件地址。),最后点击确定。
然后,在使用您指定的帐户向其他人发送或转发电子邮件后,您的帐户或您的特定cc收件人将始终收到相同的邮件。
答案 2 :(得分:0)
看起来您需要处理Application类的ItemSend事件。只要用户通过Inspector(在检查器关闭之前,但在用户单击“发送”按钮之后)或者使用Outlook项目的Send方法(如MailItem)发送Microsoft Outlook项目时,就会触发它在一个程序中。注意,Cancel参数允许取消发送电子邮件的过程。
在ItemSend事件处理程序中,您可以查看作为参数传递的项目的SentOnBehalfOfName属性,并使用MailItem类的Recipients属性添加CC收件人。 “收件人”集合提供了用于添加收件人的Add方法。
Set myRecipient = myItem.Recipients.Add("Dan Wilson")
myRecipient.Type = OlMailRecipientType.olCC
不要忘记调用Recipient类的Resolve或ResolveAll方法来解析地址簿中的Recipient对象。
有关详细信息,请参阅How To: Fill TO,CC and BCC fields in Outlook programmatically。