选择已创建的模板电子邮件并使用特定帐户发送

问题描述 投票:0回答:1

我想在 VBA 中使用我现有的代码并将该功能添加到“使用特定帐户发送”。我当前的编码根据用户位置调用模板(效果很好),但电子邮件代表同一邮箱发送。

例如,当我运行当前宏时,“发件人”将作为Toast Los Angeles Sent on Behalf of Toast Los Angeles

发送

我希望电子邮件是 BWS 代表 Toast Los Angeles 发送

任何帮助将不胜感激。

Sub JobCompletion()
Dim Inbox As Object
Dim MyItem As Object
Dim Region As String
Dim RegionB As String
Dim FormTemplate As String

'This code was replaced by Environ("UserName") to be compatible with Win 10
'Select Case fOSUserName()
Select Case Environ("UserName")
  
  'Set up site according to username for LA
  Case "blue", "red", "pink"
  Region = "Toast Los Angeles"
  FormTemplate = "IPM.Note._LA Pres Center Job Complete Notification - IBD"

  'Set up site according to username for HOU
  Case "black", "brown", "gree"
  Region = "Toast Houston"
  FormTemplate = "IPM.Note._HOU Pres Center Job Complete Notification - IBD"
  
  Case Else
  MsgBox "Please Contact Jacob X to add you to the Macro"
  Exit Sub
  
  End Select
  
        'Check Version of Outlook (2007 vs 2010)
            If Outlook.Application.Version = "12.0.0.6680" Then
                On Error GoTo FolderError:
                Set Inbox = Outlook.Application.GetNamespace("MAPI").Folders("Mailbox - " & Region)
                On Error Resume Next
            Else
                On Error GoTo FolderError:
                Set Inbox = Outlook.Application.GetNamespace("MAPI").Folders(Region).Folders("Inbox")
                On Error Resume Next
            End If
    
            'Open Form From Folder (The Inbox =)
            Set MyItem = Inbox.Items.Add(FormTemplate)
            MyItem.SentOnBehalfOfName = Region
            MyItem.Display
  
Set Inbox = Nothing
Set MyItem = Nothing
     
Exit Sub

End Sub

我尝试使用默认帐户实施宏,但此代码用于新电子邮件而不是我现有的电子邮件模板。

Public Sub New_Mail()
Dim olNS As Outlook.NameSpace
Dim oMail As Outlook.MailItem

Set olNS = Application.GetNamespace("MAPI")
Set oMail = Application.CreateItem(olMailItem)

'use first account in list
    oMail.SendUsingAccount = olNS.Accounts.Item(1)
    oMail.Display
      
Set oMail = Nothing
Set olNS = Nothing

End Sub
vba email outlook user-accounts send-on-behalf-of
1个回答
0
投票

听起来您需要使用

SendUsingAccount
类的
MailItem
属性。
SendUsingAccount
属性可用于指定在调用
MailItem
方法时用于发送
Send
的帐户。

Set MyItem = Inbox.Items.Add(FormTemplate)
MyItem.SendUsingAccount = Account
MyItem.Display

您还可以从 Outlook 中该帐户的文件夹中的模板创建项目。只需使用 Store.GetDefaultFolder 而不是 Namespace.GetDefaultFolder

Store.GetDefaultFolder
方法类似于
GetDefaultFolder
对象的
NameSpace
方法。不同之处在于此方法获取与帐户关联的交付商店上的默认文件夹,而
NameSpace.GetDefaultFolder
返回当前配置文件的默认商店上的默认文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.