更改“从”字段

时间:2015-10-24 19:40:21

标签: vba email outlook-vba outlook-2016

我在Outlook帐户上设置了一封Outlook电子邮件,让我们说" example@xxx.com"。

我有另一个"电子邮件帐户",让我们说" alias@zzz.net" ;,这只是指向我的@ xxx.com帐户的指针

Outlook没有指针帐户的设置,除了我可以在From字段中输入它。我已将Outlook设置为手动更改@ xxx.com和@ zzz.net之间的“发件人”字段。

由于我的@ xxx.com电子邮件是实际的电子邮件,因此Outlook默认使用“发件人”字段中的该电子邮件。我希望这是相反的,即我发出的任何电子邮件在“发件人”字段中都有" alias@zzz.com。

我尝试使用以下代码:

Public WithEvents myItem As Outlook.MailItem

Private Sub Application_ItemLoad(ByVal Item As Object)
    If (TypeOf Item Is MailItem) Then
        Set myItem = Item
    End If
End Sub

Private Sub FromField()
    With myItem
        .SentOnBehalfOfName = "alias@zzz.com"
        .Display
    End With
End Sub

Private Sub myItem_Open(Cancel As Boolean)
    FromField
End Sub

将FromField子放入Application_ItemLoad不起作用。

2 个答案:

答案 0 :(得分:0)

无法执行此操作 - Exchange在发送传出邮件时始终使用主SMTP地址。作为代理地址之一发送的唯一方法是通过SMTP执行此操作。您可以创建虚拟POP3 / SMTP帐户(确保POP3不下载邮件)或使用Proxy Manager - 它将自己直接安装到Outlook中并透明地使用SMTP。

有关选项列表,请参阅http://www.msoutlook.info/question/send-mail-from-additional-exchange-address-or-alias

答案 1 :(得分:0)

您需要使用MailItem类的SendUsingAccount属性,该属性允许设置一个Account对象,该对象表示发送MailItem的帐户。

Sub SendUsingAccount() 
 Dim oAccount As Outlook.account 
 For Each oAccount In Application.Session.Accounts 
  If oAccount.AccountType = olPop3 Then 
   Dim oMail As Outlook.MailItem 
   Set oMail = Application.CreateItem(olMailItem) 
   oMail.Subject = "Sent using POP3 Account" 
   oMail.Recipients.Add ("someone@example.com") 
   oMail.Recipients.ResolveAll 
   oMail.SendUsingAccount = oAccount 
   oMail.Send 
  End If 
 Next 
End Sub 

只有在Exchange帐户的情况下,SentOnBehalfOfName属性才有意义。此外,您需要具有代表其他帐户发送电子邮件的权限。