【发布时间】:2021-09-10 05:36:35
【问题描述】:
我收到来自供应商的发票,我想将这些发票转发到 QBO(Quickbooks Online)电子邮件地址,该地址处理“收据/发票”,其中读取附件并解析其中的信息 - 这加快了数据输入。
QBO 仅接受来自特定电子邮件地址(即在 QBO 中注册为帐户的电子邮件)的这些电子邮件。所以假设 QBO 只接受来自“me@mydomain.com”的邮件。我在“billing@mydomain.com”上收到发票,这是“me@mydomain.com”可以访问的共享 Office 365 邮箱。
我的 VBA 代码应该使用 me@mydomain.com 发送地址将当前选择的电子邮件(在 billing@mydomain.com 邮箱中找到)转发到 mydomain@qbodocs.com。
问题是转发的电子邮件到达收件人的邮箱时就像来自 billing@mydomain.com。当我.Display(而不是.Send)时,我看到发送帐户设置“正确”但它仍然来自错误的帐户。
我决定在弹出窗口后(使用.Display),我会将发送帐户更改为其他帐户,然后返回到预期的发送帐户 - 它可以工作。因此,我需要设置除 .SentOnBehalfOfName 之外的一些设置/标题,因为我不希望任何用户干预。
Option Explicit
Public Sub SendToQBO()
Dim Email As Object
Dim Sender As String
Sender = "me@mydomain.com"
For Each Email In ActiveExplorer.Selection
With Email.Forward
' Just send to myself for now until this is figured out
.To = Sender
'.To = "mydomain@qbodocs.com"
.Subject = "Sent From Outlook"
.Body = Email.Body
.SendUsingAccount = Session.Accounts(Sender)
.SentOnBehalfOfName = Sender
.Send
' Using .Display instead shows the right sending address, but it's ineffective
' unless I select another, then select it again before manually sending.
' .Display
End With
Next
End Sub
【问题讨论】: