写在前面,下面的手册中,凡是额外功能部分都有 30天的使用限制,要解除该限制的方法如下:
如果你得到"AspEmail's premium features have expired"出错消息后
请运行regedit,删除HKEY_LOCAL_MACHINE/SOFTWARE/Persits Software/AspEmail
然后使用regsvr32重新注册AspEmail using.然后你又可以接着用30天了
AspEmail 4.1 手册
Copyright (c) 1999 Persits Software, Inc.
All Rights Reserved
什么是AspEmail 4.1?
AspEmail 4.1 是一个在ASP或则VB环境中使用外部SMTP服务器发送电子
邮件消息的活动服务组件。AspEmail 4.1 支持多收件人,多CC, 多Bcc,多附件,HTML格式, 内嵌图形
, 和非US ASCII字符集设置. AspEmail 4.1是一个完全免费的组件,除了内嵌图形功能、
Quoted-Printable编码支持功能、消息队列功能需要另外的购买许可外
这份完全免费的AspEmail可以从www.aspemail.com处下载。
系统需求:
一般配置需求:
Windows 95/98 或则 Windows NT 4.0+
一个外部SMTP服务程序
特殊配置需求:
Internet Information Server 3.0 + 和 Active Server Pages
或则Personal Web Server (任何版本) 和 Active Server Pages
或则Visual Basic, Visual C++, 其他支持COM组件的开发环境
如何开始呢?
首先需要在你的系统上注册AspEmail, 在你的MS DOS或则Start/Run中执行下面的命令:
C:/>regsvr32 c:/AspEmailDir/AspEmail.dll
AspEmail是和AspUpload(Persits Software, Inc.)组件评估版本一同发布的
该组件是用来将附件文件上载到服务端的.(译者注:当然了,AspMail也可以单独使用的)
注册AspUpload执行下面的命令:
C:/>regsvr32 c:/AspEmailDir/AspUpload.dll
AspUpload不需要运行AspEmail.
然而, 在和AspMail一起发布的Asp SendMail例子中在演示AspMail的附件功能时使用到了AspUpload
所以如果你需要使用这个例子的话,请也注册AspUpload(你可以去www.aspupload.com了解
更加详细的信息,不过它可不是免费的哦).
如何使用AspEmail
在ASP环境中使用AspEmail的代码如下:
<%
...
Set Mail = Server.CreateObject("Persits.MailSender")
...
%>
在VB环境中使用ASPMail的代码如下,使用前先去Project/References...中选中Persits Software AspEmail 4.1.
Dim Mail As MailSender
Set Mail = New MailSender
Mail.Host = "smtp.mycompany.com"
Mail.Port = 25
Mail.From = "sales@mycompany.com"
Mail.FromName = "Sales Department" ' 可选的
如果要增加消息的收件人,CCs, BCCs, 和Reply-To,分别使用AddAddress, AddCC, AddBcc and AddReplyTo方法.
这些方法都有两个输入参数: email地址和可选的参数name.
Mail.AddAddress "jsmith@company1.com", "John Smith"
Mail.AddCC "bjohnson@company2.com" ' Name是可选的
使用Subject和Body属性来分别指定消息的主题和消息正文.
正文可以是纯文本也可以是HTML格式的.如果要使用HTML格式的话,你必须要设置IsHTML属性为True.例如
Mail.Subject = "Sales Receipt"
Mail.Body = "Dear John:" & chr(13) & chr(10) & "Thank you for your business. Here is your receipt."
或则
Mail.Subject = "Sales Receipt"
Mail.Body = "<HTML><BODY BGCOLOR=#0000FF>Dear John:....</BODY></HTML>"
Mail.IsHTML = True
如果是要发送一个文件附件的话,使用AddAttachment方法.
它使用附件的绝对路径为输入参数.如果你有多个附件的话,就多次调用这个方法即可
注意:不要使用“=”来传递参数
Mail.AddAttachment "c:/dir/receipt.doc"
发送消息是调用Send方法. 该方法在出现异常时会出错
你应该选择截获这个出错信息,这个可以使用On Error Resume Next来实现,例如:
On Error Resume Next
Mail.Send
If Err <> 0 Then
Response.Write "An error occurred: " & Err.Description
End If
支持基于S/MIME的加密和数字电子签名
从Build 4.0.0.3版本开始, AspEmail就可以生成基于工业标准的S/MIME格式的密码和数字电子签名.
如果要发送秘密邮件, AspEmail必须要和AspEncrypt密码组件(也是Persits Software, Inc.出品)联合使用。
如果想了解更多的信息,可以去下载免费的AspEncrypt试用版本www.aspencrypt.com
额外特点(可不是免费的说):支持队列消息
AspEmail如果你是使用基本的功能(就是上面介绍的功能)的话,它是完全免费的.
但是它的额外的功能就需要你购买一个注册许可(当然你也可以免费使用30天它的额外功能)
可以去www.aspemail.com购买这个东东。
AspEmail 4.1有一个新方法SendToQueue, 该方法不是直接将邮件发送给SMTP服务器
而是将消息按照先后顺序放入队列中,该队列由EmailAgent NT服务来发送。这是一个后台运行的进程
你的ASP中发送邮件的代码就不用一直要等到邮件发送完毕后才能够结束
这样就意味着你将大大提高代码的效率,缩短客户端等待时间.
EmailAgent服务本身是完全免费的,可以从www.aspemail.com/download.html处下载.
但是只是SendToQueue方法需要在你使用了30天后购买一个注册的key。
额外特点: 使用内嵌图形发送消息
AspEmail能够发送包含有图形的电子邮件. 例子如下:(该例子发送一个有背景图形的电子邮件)
...
Mail.Body = "<HTML><BODY BACKGROUND=""cid:My-Background-Image"">...</BODY></HTML>"
Mail.AddEmbeddedImage "c:/aspemaildir/margin.gif", "My-Background-Image"
AddEmbeddedImage方法有两个输入参数:图形文件的绝对路径和Content ID (是一个字符串变量)
该变量格式如下:
"cid:<Content ID>"
在例子中的该变量Content ID为"My-Background-Image"用来
引用<BODY>标志的BACKGROUND属性.你可以使用同样的技术来在<IMG>标志中使用该功能,例子如下:
Mail.Body = "<HTML>....<IMG SRC=""cid:My-Company-Logo"">...</HTML>"
Mail.AddEmbeddedImage "c:/aspemaildir/logo.gif", "My-Company-Logo"
为了让你的脚本可读性更好,你可以选择把你的消息文本放到一个独立的文件中,
然后把该文件使用AppendBodyFromFile方法加入到正文中.例如:
<!-- File messagebody.html-->
<HTML>
<HEAD>
<STYLE>BODY {
COLOR: #427d64; FONT-FAMILY: "Arial"; FONT-SIZE: 12pt; MARGIN-LEFT: 8em
}
</STYLE>
</HEAD>
<BODY BACKGROUND="cid:My-Background-Image">
<H2>Thank you for Shopping At Our Online Store!</H2>
....
</BODY>
</HTML>
要在你的正文中使用上面这个文件,代码如下:
Mail.AppendBodyFromFile "c:/aspemaildir/messagebody.html"
Mail.AddEmbeddedImage "c:/aspemaildir/margin.gif", "My-Background-Image"
额外特点: 支持非US-ASCII字符集
AspEmail能够发送非US-ASCII字符集,只要是可以打印出来的格式即可.
也就是说,该格式在标准RFC-2045中有详细描述.也就是说ASC码小于33和大于126的可以被表示为"="
后加两个16进制的数字.例如, 10进制数值12 (US-ASCII中的换页符号)表示为"=0C",
10进制的数值61 (US-ASCII中的 "="字符)被表示为"=3D".
AspEmail自动对消息正文按照Quoted-Printable格式进行编码,如故将ContentTransferEncoding属性
设置为"quoted-printable". 你也可以设置CharSet属性为适当的字符集
下面的代码片段使用KOI8字符集的俄文发送一个文本文件(该文件在此不显示):
...
Mail.ContentTransferEncoding = "quoted-printable"
Mail.Charset = "koi8-r"
Mail.AppendBodyFromFile "c:/russiandoc.txt"
Mail.Send
ASP例子程序
跟随AspEmail发布的还有一个ASP例子程序,该例子允许你通过Web建立和发送有附件的邮件。
该例子程序由下面几个文件组成:
global.asa (collection object creation)
SendMail.asp (main Email interface page)
Attachments.asp (attachment handling page)
UploadScript.asp (upload script which uses AspUpload).
要正确使用这个例子的话,请正确注册ASPUpload组件试用版本
对象帮助
AspEmail的属性和属性注释
属性名称 属性类型 注释
Host String(必须) SMTP服务器的主机名称
Port Integer SMTP的端口号,默认为25.
From String(必须) 发件人的email地址
FromName String 发件人的名称
Subject String 消息的主题
Body String 消息的正文.可以是文本也可以是HTML格式.如果是后者,那么属性IsHTML必须为True.
IsHTML Boolean 默认值为False.如果被设置为True, AspEmail将设置消息的Content-Type部分为text/html.
Priority Integer 消息的优先权.合法值为1 (高), 3 (普通) 和5 (底). 默认为0(即没指定优先级).
Helo String 默认值为"AspEmail".当SMTP对话开始后该字符串随HELO命令被发送.用来SMTP的客户端标识SMTP服务器的域名.
ContentTransferEncoding String 默认为"7bit".指定Content-Transfer-Encoding MIME.其它的合法值包括"8bit"和"quoted-printable". 如果将其设置为"quoted-printable",AspEmail将自动转换消息正文为RFC-2045的Quoted-Printable格式.
CharSet String 默认值为"ISO-8859-1".指定消息中的Content-Type MIME.
Expires Date (只读) 返回额外功能的过期日期.如果安装了合法的key后返回9/9/9999.如果返回0 (显示为"12:00 AM")表示过期或则没有安装key
AspEmail的方法
方法名成 参数 注释
AddAddress Email As String
Name = ""(可选)将邮件的地址和可选的通讯全名加入到信笺的To: 列表中.
AddCC Email As String
Name = ""(可选)将一个email地址和可选的通讯全名加入到Cc:列表中.
AddBcc Email As String
Name = ""(可选)将一个email地址和可选的通讯全面加入到Bcc:列表中
AddReplyTo Email As String
Name = ""(可选)将一个email地址和可选的通讯全面加入到Reply-To:列表中
AddAttachment Path As String 将一个文件加入到消息的附件中.
AddEmbededImage Path As String
ContentID As String 将一个图形加入到消息内嵌的图形中,注意,Cotentid中不能够有空格:
AppendBodyFromFile Path As String 在Body属性中新增加一个文本或则HTML文件.
Send 无 发送消息,并有出错信息.出错信息见下面的列表。
SendToQueue Path = ""(可选) 发送消息到消息队列中,并马上返回.需要EmailAgent服务运行. Path用来指定消息在队列中的路径.Path被忽略, EmailAgent's Message Queue中将从注册信息里面获取Path配置.更多信息请参考EmailAgent.
SendEncrypted Msg As CryptoMessage 发送一个加密的消息. Msg是一个由AspEncrypt组件创建的对象。更多信息参看AspEncrypt网站
SendSigned Msg As CryptoMessage 发送一个数字签名. Msg是一个由AspEncrypt组件创建的对象。更多信息参看AspEncrypt网站
SendSignedAndEncrypted Msg1 AspCryptoMessage
Msg2 As CryptoMessage 发送一个消息,第一个是数字签名然后加密.
Reset 无 清除所有的地址和附件列表属性,然后用来发送一条新消息
ResetAll 无 功能和Reset类似,但是清除所有的属性,并设置为默认值.
LogonUser Domain As String;
UserID As String;
Password As String. 用来实现指定用户登录。如果Domain为空,那么将使用本地机来验证UserID/Password.调用者必须拥有"Act as Part of the Operating System"权限,否则会出错"Privilege is not held by client".
该方法当使用SendToQueue方法,而队列列表在另外一台机器,需要适当的帐号来将消息放置在远程机器上。
RevertToSelf 无 终止登录帐号.
错误代码
错误号 错误描述
1 Winsock initialization failed.
2 gethostbyname failed.
3 Socket creation failed.
4 Connection failed.
5 Sending data failed.
6 Error returned from SMTP server
7 Opening file failed.
8 Not enough memory.
9 Reading from file failed.
10 Host not specified
11 ContentID may not be empty (generated by AddEmbededImage)
12 ContetnID must be unique (generated by AddEmbeddedImage)
13 Invalid Priority value (generated by put_Priority)
14 Component is expired or invalid registration key (generated by premium methods and properties only)