代码之家  ›  专栏  ›  技术社区  ›  Kevin

如何从Word VBA的电子邮件地址设置Outlook

  •  0
  • Kevin  · 技术社区  · 6 年前

    我正在尝试使用Word VBA向电子邮件收件人发送文档。在大多数情况下,这并不难。到目前为止我有这个代码:

    With oItem
        'Set the recipient for the new email
        .To = "person1@mail.com"
        'Set the recipient for a copy
        .CC = "ccperson@mail.com"
        'Set the subject
        .Subject = "Blah blah"
    End With
    

    我的问题是我在Outlook中配置了几个发件人电子邮件地址,而Outlook在默认情况下选择了错误的地址。

    有没有办法用上面的方法指定发件人的电子邮件地址?不用说,用于指定发件人地址的直观代码行( .From = me@wherever.com )不起作用。非常感谢。

    更新:

    1) 包括对Microsoft Outlook 16对象库的引用,以便可以访问 Outlook.MailItem 数据类型。邮件可以发送上面的代码(没有参考),但总是发送错误的发件人地址。

    2) 将邮件项声明为 Outlook.Mail项目 . 这似乎使 SentOnBehalfOfName

    sentonbehalfoff名称 现场。

    Dim MAPIMailItem As Outlook.MailItem
    Set MAPIMailItem = olkApp.CreateItem(olMailItem)  'Create a new mail message
    With MAPIMailItem
        .BodyFormat = olFormatPlain
        .to = strTo
    
       ' SentOnBehalfOfName sets the From field on my machine,
       ' AFTER I declared MAPIMailItem as Outlook.MailItem
        .SentOnBehalfOfName = "fromAddress@foo.com"
    
        .Subject = strSubject
        .body = strBody
        .attachments.Add strAtt
       '.send
        .Display
    End With
    
    2 回复  |  直到 4 年前
        1
  •  2
  •   user2261597 user2261597    6 年前

    我使用这个代码:

    Dim WantedAccount as String ' Set to preferred account name
    Set MAPISession = objOutlook.Application.Session     'Get the MAPI Outlook session
    
    Set MAPIMailItem = objOutlook.CreateItem(olMailItem)  'Create a new mail message
    With MAPIMailItem
      For Each Account In MAPISession.Accounts
        If Account = WantedAccount Then
          .SendUsingAccount = Account
          Exit For
        End If
      Next
    
        2
  •  2
  •   Dmitry Streblechenko    6 年前

    如果您是通过Exchange帐户发送,请设置 MailItem.SentOnBehalfOfName MailItem.SendUsingAccount 财产。