Vba 如何从特定帐户发送邮件?

Vba 如何从特定帐户发送邮件?,vba,outlook,Vba,Outlook,我正在使用Office 365(Outlook版本1909 Build 12026.20264) 我配置了两个电子邮件帐户(a@a.com及b@b.com)和一个共享邮箱(shared@b.com) 用我的b@b.com我有权从中发送电子邮件的帐户shared@b.com. 我可以从所有帐户手动发送电子邮件(a@a.com, b@b.com, shared@b.com) 我有VBA代码发送电子邮件shared@b.com使用SentonBehalfName属性 子测试() Dim origEma

我正在使用Office 365(Outlook版本1909 Build 12026.20264)

我配置了两个电子邮件帐户(a@a.com及b@b.com)和一个共享邮箱(shared@b.com)

用我的b@b.com我有权从中发送电子邮件的帐户shared@b.com.

我可以从所有帐户手动发送电子邮件(a@a.com, b@b.com, shared@b.com)

我有VBA代码发送电子邮件shared@b.com使用SentonBehalfName属性

子测试()
Dim origEmail作为邮件项
Dim ReplyMail作为邮件项
Set origEmail=Application.ActiveWindow.Selection.Item(1)
设置replyEmail=Application.CreateItemFromTemplate(“C:\…\Template.oft”)
replyEmail.SentonBehalfName=”shared@b.com"
replyEmail.HTMLBody=replyEmail.HTMLBody&origEmail.Reply.HTMLBody
replyEmail.Subject=“RE:+origEmail.Subject
回复邮件。显示
端接头
通常这会正确发送电子邮件。我可以看到他们进入了“已发送”文件夹b@b.com帐户

有时它会尝试使用a@a.com帐户(没有从发送电子邮件的权限)shared@b.com). 我在中收到一封错误电子邮件a@a.com而且电子邮件没有发送

如何更改我的代码,以便每次我从shared@b.com它将使用我的b@b.com帐户


注意:我设置了b@b.com帐户作为我的默认帐户。

您需要将
SendUsingAccount
属性设置为与b@b.com信箱

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

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

  for each acc in Application.Session.Accounts
    if acc.DisplayName = "b@b.com" Then 
      replyEmail.SendUsingAccount = acc
      Exit for
    End If
  next 

  replyEmail.SentOnBehalfOfName = "shared@b.com"
  replyEmail.HTMLBody = replyEmail.HTMLBody & origEmail.Reply.HTMLBody
  replyEmail.Subject = "RE:" + origEmail.Subject

  replyEmail.Display
End Sub

怎么用?你能解释一下吗?我的意思是我应该使用SentOnBehalfOfName和SendUsingAccount吗?请帮我修改我的代码好吗?如果你有多个Exchange帐户,那么是的,你可能还需要设置SendUsingAccount