vbscript - 这个脚本(使用 Outlook 发送电子邮件)如何工作?

标签 vbscript outlook

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

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

提前致谢...

最佳答案

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

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

关于vbscript - 这个脚本(使用 Outlook 发送电子邮件)如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11726067/

相关文章:

vbscript - Active Directory VBS搜索脚本的第1行中的错误 'Expected end of statement'

javascript - 如何将 VBScript 字符串传递为我的 HTML 输入框中的默认值?

java - 如何从 asp 调用 java?

vba - 使用 VBA 以编程方式更改 Outlook 中电子邮件正文的属性

vbscript - 错误: "Invalid root in registry key" with Shell.RegWrite

windows - 谁能帮我修复 Windows 10 上的 VBS 脚本,该脚本在电池电量不足时显示警告/MsgBox?

c# - HTML 电子邮件 "opens"未被跟踪

email - 要么没有默认邮件客户端,要么当前邮件客户端无法满足消息传递请求。

php - 使用 SSL 从 PHP 发送电子邮件以及在 outlook 的接收端需要什么配置

vba - 如何在 Outlook.AppointmentItem 中设置 Recipients 属性?