我在Outlook中配置了两个帐户(两个不同的SMTP服务器),一个用于外部使用,另一个用于内部使用。由于DNS,它们无法相互解决。
例如,smtp.mail.a.com(互联网)和smtp.mail.b.com(内联网)
我想将邮件发送到外部电子邮件地址,但是bcc一个特定的内部电子邮件地址,例如abc@mail.b.com。
目前,我必须首先发送到外部电子邮件地址,然后再将相同的电子邮件发送到内部电子邮件地址。
是否有任何脚本或解决方法可以解决此问题,该问题能够立即向外部和内部发送电子邮件?与指定的内部电子邮件帐户一样,可以自动识别并通过指定的SMTP发送?
感谢您的帮助。
答案 0 :(得分:0)
不,Outlook不会开箱即用。但是您可以编写脚本或创建跟踪Application.ItemSend事件的COM插件,检测正在使用的服务器,创建电子邮件的副本(mailItem.Copy),适当设置帐户(#2),然后发送它(MailItem.Send)。
答案 1 :(得分:0)
只要用户通过Inspector(在检查器关闭之前,但在用户单击“发送”按钮之后)或者在用户单击“发送”按钮之后发送Microsoft Outlook项目时,就会触发Application类的ItemSend事件。在程序中使用Outlook项目的发送方法,例如MailItem。
因此,在事件处理程序中,您可以检出SendUsingAccount属性,该属性返回一个Account对象,该对象表示要在其下发送MailItem的帐户。请注意,SendUsingAccount属性可用于指定调用Send方法时应用于发送MailItem的帐户。例如:
Sub SendUsingAccount()
Dim oAccount As Outlook.account
For Each oAccount In Application.Session.Accounts
If oAccount.AccountType = olPop3 Then
Dim oMail As Outlook.MailItem
Set oMail = Application.CreateItem(olMailItem)
oMail.Subject = "Sent using POP3 Account"
oMail.Recipients.Add ("someone@example.com")
oMail.Recipients.ResolveAll
oMail.SendUsingAccount = oAccount
oMail.Send
End If
Next
End Sub
很可能您需要取消对提交的邮件项目的进一步处理,并在指定正确的帐户后以编程方式重新发送。
或者只是创建电子邮件的副本,设置SendUsingAccount帐户并以编程方式发送(请参阅示例代码)。