我为我的Microsoft 365商业帐户设置了一个自定义域(“ @ company.com”是自定义域,它实际上是“ @ company.onmicrosoft.com”)。除了“ @ company.com”帐户外,我还有另外两个帐户,它们通过“ @ yahoo.com”,“ @ gmail.com”之类的其他邮件服务器)
我创建了一个VBA子程序来发送电子邮件,并根据需要使用.SendUsingAccount发送不同的帐户。该功能按“ @ yahoo.com”,“ @ gmail.com”帐户的广告方式工作,但是当我要选择“ @ Company.com”(默认)帐户时,该帐户基本上是“ @ company.onmicrosoft.com” ”帐户,它将选择紧随其后的“ @ yahoo.com”帐户。
这里是代码:
For i = 1 To OlApp.Session.Accounts.Count
If OlApp.Session.Accounts.Item(i).SmtpAddress = "[email protected]" Then AccNo = i
' Debug.Print "Acc name: " & OlApp.Session.Accounts.Item(i) & " Acc number: " & i & " , email: " & OlApp.Session.Accounts.Item(i).SmtpAddress
Next i
Set objOlAccount = OlApp.Session.Accounts.Item(i)
Set OlMail = OlApp.CreateItem(olMailItem)
Set OlMail.SendUsingAccount = objOlAccount
[当我运行Debug.Print时,我看到i = 1的“ [email protected]帐户,i = 2的” @ yahoo.com“帐户,i = 3的” @ Gmail.com“帐户。
我什至强迫选择:设置objOlAccount = OlApp.Session.Accounts.Item(1),但我的“ @ yahoo.com”帐户仍用于发送电子邮件。
有人知道如何将发送帐户设置为我的“ @ company.com”(“ @ company.onmicrosft.com”)帐户吗?
Set objOlAccount = OlApp.Session.Accounts.Item(i)
应该是
Set objOlAccount = OlApp.Session.Accounts.Item(AccNo)
可能会更好:
For i = 1 To OlApp.Session.Accounts.Count
If OlApp.Session.Accounts.Item(i).SmtpAddress = "[email protected]" Then
Set objOlAccount = OlApp.Session.Accounts.Item(i)
Exit For
End If
Next i
If Not objOlAccount Is Nothing then
Set OlMail = OlApp.CreateItem(olMailItem)
Set OlMail.SendUsingAccount = objOlAccount
End If