此脚本(使用Outlook发送电子邮件)如何工作?

问题描述:

任何人都可以帮助我理解MAPI的工作原理吗?我有这个简单的使用MAPI发送电子邮件的vbscript。它工作得很好,但是,我不知道它是如何做到的......后台发生了什么?此脚本(使用Outlook发送电子邮件)如何工作?

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 = "[email protected]" 
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接口是基于COM的基于Outlook的自动化。这样的代码将利用Outlook通过Outlook可配置使用的任何邮件传输系统发送电子邮件。但是,发送电子邮件的开销很大。取决于您的网络上可能有哪些本地电子邮件服务器,或者通过发送电子邮件的方式可能更有效。但是,如果这种方式正常工作并且满足您的需求,那么不要认为按照您的方式进行操作有任何问题。这完全是关于了解可用的工具以及如何最好地将它们应用于您的特定问题空间。

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

+0

你能用一些简单的方法解释一下COM吗? :) – duper 2012-07-31 15:46:39

+0

这里有大量关于*COM的详细信息。 http://en.wikipedia.org/wiki/Component_Object_Model – dmarietta 2012-07-31 16:57:42

+0

我该如何使用这个脚本? – Mowgli 2013-03-13 13:37:57