发送时始终抄送 "On Behalf Of"
Always CC when sending "On Behalf Of"
我经常代表其他用户发送电子邮件。每次我代表该用户发送电子邮件 from/on 时,我想使用 VBA 自动抄送该用户。
我不熟悉 Outlook 的 VBA,但我认为您可以编写一个 if 语句来表示 "if sending message from UserX, cc UserX"。每当代表发送电子邮件时,代码应该 运行 自动。
这将满足您的需求(这是“始终抄送自己 Outlook”的第一个 Google 结果)
http://www.extendoffice.com/documents/outlook/1108-outlook-auto-cc.html
启动 outlook 2013 或 2010,并确保您位于邮件部分。然后单击“主页”>“规则”>“管理规则和警报”。
selecting 管理规则和警报选项后,将弹出规则和警报对话框。在电子邮件规则下,单击新建规则选项。
在规则向导中,单击“对我发送的邮件应用规则”,然后单击“下一步”继续。
然后弹出另一个对话框。
(1.)第一步,勾选指定账号框。在第 2 步中,请单击“指定”一词。
(2.) 然后单击帐户下拉列表以选择要应用此规则的帐户。
select修改账号后,点击确定return到之前的window,你会看到select修改的账号显示在规则向导中。然后点击下一步按钮。
(1.) 在此向导中,选中将消息抄送给其他人或 public 组框,然后在步骤 2 中单击人员或 public 组。
(2.) 在 Rule Address 对话框中,双击您的抄送收件人,将地址添加到 To-> 文本框,(如果我想自己抄送,我会 select 或输入我自己的电子邮件地址To-> 列。),最后单击确定。
它returns到前面的window,可以看到抄送收件人地址出现了。然后点击完成按钮。
现在,return进入最开始的对话框,单击“确定”按钮,然后将创建 cc 规则。如果您不想启用该规则,请取消选中它。
然后在使用您指定的帐户向其他人发送或转发电子邮件后,您的帐户或您的特定抄送收件人将始终收到相同的邮件。
您似乎需要处理应用程序 class 的 ItemSend 事件。每当发送 Microsoft Outlook 项目时都会触发它,无论是用户通过检查器(在检查器关闭之前,但在用户单击“发送”按钮之后),还是在使用 Outlook 项目(例如 MailItem)的发送方法时在一个程序中。请注意,Cancel 参数允许取消发送电子邮件的过程。
在 ItemSend 事件处理程序中,您可以查看 SentOnBehalfOfName property of the item passed as a parameter and add the CC recipient using the Recipients property of the MailItem class. The Recipients collection provides the Add 添加收件人的方法。
Set myRecipient = myItem.Recipients.Add("Dan Wilson")
myRecipient.Type = OlMailRecipientType.olCC
之后不要忘记调用 Recipient class 的 Resolve 或 ResolveAll 方法来根据地址簿解析 Recipient 对象。
有关详细信息,请参阅 How To: Fill TO,CC and BCC fields in Outlook programmatically。
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
编辑:刚刚意识到您可以在创建/回复时设置抄送,而不是等到 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
我经常代表其他用户发送电子邮件。每次我代表该用户发送电子邮件 from/on 时,我想使用 VBA 自动抄送该用户。
我不熟悉 Outlook 的 VBA,但我认为您可以编写一个 if 语句来表示 "if sending message from UserX, cc UserX"。每当代表发送电子邮件时,代码应该 运行 自动。
这将满足您的需求(这是“始终抄送自己 Outlook”的第一个 Google 结果) http://www.extendoffice.com/documents/outlook/1108-outlook-auto-cc.html
启动 outlook 2013 或 2010,并确保您位于邮件部分。然后单击“主页”>“规则”>“管理规则和警报”。
selecting 管理规则和警报选项后,将弹出规则和警报对话框。在电子邮件规则下,单击新建规则选项。
在规则向导中,单击“对我发送的邮件应用规则”,然后单击“下一步”继续。
然后弹出另一个对话框。
(1.)第一步,勾选指定账号框。在第 2 步中,请单击“指定”一词。 (2.) 然后单击帐户下拉列表以选择要应用此规则的帐户。
select修改账号后,点击确定return到之前的window,你会看到select修改的账号显示在规则向导中。然后点击下一步按钮。
(1.) 在此向导中,选中将消息抄送给其他人或 public 组框,然后在步骤 2 中单击人员或 public 组。
(2.) 在 Rule Address 对话框中,双击您的抄送收件人,将地址添加到 To-> 文本框,(如果我想自己抄送,我会 select 或输入我自己的电子邮件地址To-> 列。),最后单击确定。它returns到前面的window,可以看到抄送收件人地址出现了。然后点击完成按钮。
现在,return进入最开始的对话框,单击“确定”按钮,然后将创建 cc 规则。如果您不想启用该规则,请取消选中它。
然后在使用您指定的帐户向其他人发送或转发电子邮件后,您的帐户或您的特定抄送收件人将始终收到相同的邮件。
您似乎需要处理应用程序 class 的 ItemSend 事件。每当发送 Microsoft Outlook 项目时都会触发它,无论是用户通过检查器(在检查器关闭之前,但在用户单击“发送”按钮之后),还是在使用 Outlook 项目(例如 MailItem)的发送方法时在一个程序中。请注意,Cancel 参数允许取消发送电子邮件的过程。
在 ItemSend 事件处理程序中,您可以查看 SentOnBehalfOfName property of the item passed as a parameter and add the CC recipient using the Recipients property of the MailItem class. The Recipients collection provides the Add 添加收件人的方法。
Set myRecipient = myItem.Recipients.Add("Dan Wilson")
myRecipient.Type = OlMailRecipientType.olCC
之后不要忘记调用 Recipient class 的 Resolve 或 ResolveAll 方法来根据地址簿解析 Recipient 对象。
有关详细信息,请参阅 How To: Fill TO,CC and BCC fields in Outlook programmatically。
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
编辑:刚刚意识到您可以在创建/回复时设置抄送,而不是等到 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