3

谁能帮我理解 MAPI 的工作原理?我有这个使用 MAPI 发送电子邮件的简单 vbscript。它工作得非常好,但是,我不知道它是如何做到的......后台发生了什么?

Const ForReading = 1

Set args = WScript.Arguments
sqlFile = args.Item(0)
logFile = args.Item(1)

Dim ToAddress
Dim FromAddress
Dim MessageSubject
Dim MyTime
Dim MessageBody
Dim MessageAttachment
Dim ol, ns, newMail
MyTime = Now

ToAddress = "my@email.com"
MessageSubject = "Subject goes here"
MessageBody = "Body message goes here." 
MessageAttachment = ""&logFile&""
Set ol = WScript.CreateObject("Outlook.Application")
Set ns = ol.getNamespace("MAPI")
Set newMail = ol.CreateItem(olMailItem)
newMail.Subject = MessageSubject
newMail.Body = MessageBody & vbCrLf & MyTime
newMail.RecipIents.Add(ToAddress)
newMail.Attachments.Add(MessageAttachment)
newMail.Send

提前致谢...

4

1 回答 1

2

您在上面这段代码中所做的实际上是使用已安装的 Outlook 版本来发送邮件。Outlook 很可能正在使用 MAPI,但您在此处实际使用的 API 接口是基于 COM 的 Outlook 自动化。诸如此类的代码将利用 Outlook 通过 Outlook 可以配置为使用的任何邮件传输系统发送电子邮件。但是,仅发送电子邮件消息的开销就很大。根据您在网络上的本地电子邮件服务器或通过哪些电子邮件服务器,可能会有更有效的方式来发送电子邮件。但是,如果这工作正常并且目前满足您的需求,请不要认为这意味着按照您上面的方式进行操作有任何问题。这一切都是为了了解您可用的工具以及如何最好地将它们应用于您的特定问题空间。

在您的代码中,您正在控制 Outlook 并告诉它创建一封电子邮件。您将邮件传递给 Outlook,然后 Outlook 实际上使用已配置的配置文件来确定如何将邮件传递给已配置的 Exchange 服务器或其他已安装/配置的邮件传输代理 (mta)。

于 2012-07-30T17:12:36.003 回答