Outlook宏,用于设置从何处发送电子邮件

时间:2019-07-02 13:12:12

标签: vba email outlook

我在Outlook中配置了一些电子邮件帐户。其中一封电子邮件(例如myemail@mail.com)可以访问某些邮箱(例如emaiolbox@mail.com)。

enter image description here

如果我选择“发件人”>“其他电子邮件地址”,则可以选择我要使用哪个帐户(“发送使用”)和哪个电子邮件(“发件人”)。

现在,我想使用宏进行设置,以免出错,并使用错误的邮箱发送电子邮件。

我已经有一个宏来回复电子邮件。但是我想设置“使用发送”和“发件人”选项。我该如何实现?

Sub send_email()
    Dim origEmail As MailItem
    Dim replyEmail As MailItem

    Set origEmail = Application.ActiveWindow.Selection.Item(1)
    Set replyEmail = Application.CreateItemFromTemplate("C:\Utils\Outlook_Templates\macro.oft")

    replyEmail.HTMLBody = replyEmail.HTMLBody & origEmail.Reply.HTMLBody
    replyEmail.Subject = "RE: " + origEmail.Subject
    replyEmail.To = origEmail.Sender
    replyEmail.CC = origEmail.CC + ";" + replyEmail.CC
    replyEmail.Display

End Sub

1 个答案:

答案 0 :(得分:0)

Outlook对象模型中有两个可用选项:

  1. SendUsingAccount属性允许设置一个Account对象,该对象表示要在其下发送MailItem的帐户。 SendUsingAccount属性可用于指定调用Send方法时应用于发送MailItem的帐户。如果为Null指定的帐户不再存在,则此属性返回Nothing(在Visual Basic中为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  
         Set oMail.SendUsingAccount = oAccount  
         oMail.Send  
        End If 
       Next  
      End Sub

  1. SentOnBehalfOfName属性允许设置一个String,该字符串指示邮件消息的预期发件人的显示名称。请注意,在这种情况下,您需要确保您具有足够的权限来代表他人发送电子邮件。