0

我在我的 Outlook 帐户上设置了一个 Outlook 电子邮件,比如说“example@xxx.com”。

我有另一个“电子邮件帐户”,比如说“alias@zzz.net”,它只不过是指向我的@xxx.com 帐户的指针。

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

因为我的@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 不起作用。

4

2 回答 2

0

不能这样做 - Exchange 在发送外发邮件时始终使用主 SMTP 地址。作为代理地址之一发送的唯一方法是通过 SMTP。您可以创建一个虚拟 POP3/SMTP 帐户(确保 POP3 不下载邮件)或使用代理管理器- 它直接将自身安装到 Outlook 中并在后台透明地使用 SMTP。

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

于 2015-10-25T05:17:23.387 回答
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 

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

于 2015-10-25T20:22:54.347 回答