iASP_Mail 组件介绍见内
来源:岁月联盟
时间:2003-07-11
iASP-Mail 让你直接从一个网页发送SMTP邮件。其特性包括:
- SMTP (发送) 消息
- 多种文件附件支持MIME,UUencoding ASCII和ISO-8859-1字符设置。
- 特殊Header支持(Standard X-Priority headers,MS Mail (including Exchange) priority headers, Urgent header,ConfirmReading 和 ReturnReceipt Headers)
- 自定义ContentType headers
- Word wrap (customizable)
- Subject line encoding for 8bit message subjects
- Redundant SMTP servers (如果原SMTP 服务器关闭,则使用第二个服务器)
- 多个并发用户
详情请参考以下链接:
- iASP_Mail 安装
- 简单的邮件实例
- 表单(Form)处理
- 普通表单(Form)处理
- 设置邮件优先级
- 如何使用Date/Time属性
- 创建Mail对象的注意事项
- 多主机支持
- 关于升级
- iASP_Mail 属性
- iASP_Mail 组件方法
iASP_Mail 安转
Up
使用iASP组件,你只需将jar文件移至ClaasPath即可。
简单的邮件实例
Up
使用组件非常简单,你只要按照以下步骤即可:
- 创建一个对象
- 设置某些属性
- 调用SendMail方法
以下代码示范了如何从VBScript使用iASP_Mail。在此例中,来自George Handlyhe的George想发一个email给John Smith。Geoge的mail服务器位于mailhost.halcyonsoft.com。Set mail = Server.CreateObject("SMTPsvg.Mailer")mail.FromName = "George Handky Corp."mail.FromAddress= "George@halcyonsoft.com"mail.RemoteHost = "mailhost.halcyonsoft.com"mail.AddRecipient "John Smith", "jsmith@halcyonsoft.com"mail.Subject = "Great SMTP Product!"mail.BodyText = "Dear Stephen" & VbCrLf & "Your widgets order has been processed!"if mail.SendMail then Response.Write "Mail sent..."else Response.Write "Mail send failure. Error was " & mail.Responseend if
我们可以通过检验SendMail方法的结果来决定邮件发送是否成功。
表单(Form)处理
Up
所有或大部分的消息输入来自于一个from(表单)。例如,一个表单传递给服务器一个GET方法(即:<form action="/scripts/iASP_Mail.asp" method=get>)的请求,便提供了请求者的email地址,消息文本的主题,如:mail.AddRecipient Request.QueryString("ToName"), Request.QueryString("ToAddress")mail.Subject = Request.QueryString("Subject")mail.BodyText = Request.QueryString("MsgBody")
from表单也可以使用POST方法(即:<form action="/scripts/iASP_Mail.asp" method=post>),这种情况下的代码如下:mail.AddRecipient Request.Form("ToName"), Request.Form("ToAddress")mail.Subject = Request.Form ("Subject")mail.BodyText = Request.Form ("MsgBody")
根据需要,在设置组件属性的时候,你可以使用任何静态的和动态的混合数据。例如:你要发送一个email给一个单一用户。这种情况下你可以如下更改代码:mail.AddRecipient "John Smith", "jsmith@halcyonsoft.com"mail.Subject = Request.QueryString("Subject")mail.BodyText = Request.QueryString("MsgBody")
普通的表单(Form)处理
Up
在某些情况下用户需要在同一段代码使用大量不同的表单来发送email。iASP让你可以循环通过在每一个BodyText属性中分配的变量后附加一个QueryString 或Form 的变量。请注意:iASP_Mail不能控制这些变量返回的顺序。这是ASP的一个功能,而不是iASP_Mail的功能。ASP可以携带这些变量并创建适当的Request集(QueryString 或 Form),并可存储数据以至iASP_Mail不能改变。如果你使用这个方法你必须接受ASP的顺序。strMsgHeader = "Form information follows" & vbCrLffor each qryItem in Request.QueryString strMsgInfo = strMsgInfo & qryItem & " - " & request.querystring(qryItem) & vbCrLfnextstrMsgFooter = vbCrLf & "End of form information"mail.BodyText = strMsgHeader & strMsgInfo & strMsgFooter
设置邮件的优先级
Up
可以更改一对标题(header)来设置message属性。
Priority 属性设置优先级的范围为1-5。1代表优先级高,3代表优先级正常,5的优先级最底。另外,你可以设置你当前属性的优先级。当前属性为true/false属性。
如何使用 DateTime 属性
Up
iASP_mail组件创建了一个消息的Date/Time值,它是基于GMT时间(格林尼治标准时间)计算的。DateTime属性的添加允许用户设置一个自定义的Date/Time时区。以下代码示范了如何设置Date/Time为美国中心的标准时间。稍微改变以下代码你可以调整为你自己的时区。function DayName (intDay) select case intDay case 1 DayName = "Sun" case 2 DayName = "Mon" case 3 DayName = "Tue" case 4 DayName = "Wed" case 5 DayName = "Thu" case 6 DayName = "Fri" case 7 DayName = "Sat" end selectend functionfunction MonthName (intMonth) select case intMonth case 1 MonthName = "Jan" case 2 MonthName = "Feb" case 3 MonthName = "Mar" case 4 MonthName = "Apr" case 5 MonthName = "May" case 6 MonthName = "Jun" case 7 MonthName = "Jul" case 8 MonthName = "Aug" case 9 MonthName = "Sep" case 10 MonthName = "Oct" case 11 MonthName = "Nov" case 12 MonthName = "Dec" end selectend function[set other mail properties]mail.DateTime = DayName (WeekDay(Date)) & ", " & Day(Date) & " " & MonthName(Month(Date)) & " " & Year(Date) & " " & FormatDateTime(Now, 4) & " -0600 (CST)"mail.SendMail
创建 Mail 对象的注意事项
Up
你可以在两个不同的时间创建mail对象:
- 发送email前
- 在session范围内并保存为一个session对象
你可以决定什么时候、什么地方适合创建基于你特殊应用程序的对象。如果你不知道用哪个方法来创建对象,或者典型的用法,你可以在发送email前创建对象。你的代码将如下:Set mail = Server.CreateObject("SMTPsvg.Mailer")... [Set properties]if mail.SendMail then ...
创建这些本地所涉及的,如前所说,可同时在多应用程序线程上使用对象。
在sessin中创建一个对象,代码如下:if Not IsObject (session("Mailer")) then Set mail = Server.CreateObject("SMTPsvg.Mailer") Set session("Mailer") = mailelse Response.write "Cached session object reference being used<p>" Set mail = session("Mailer")end if
多主机支持
Up
iASP_Mail提供了一个主机属性来设立远程SMTP服务器地址。RemoteHost的属性可以设置为你的一级和二级服务器地址(用分号隔开)。一级服务器关闭时,iASP_mail将使用二级服务器。例如:mail.RemoteHost = "mailhost.halcyonsoft.com;mailhost.anotherisp.com"
关于升级
Up
最新版本的组件可从http://www.halcyonsoft.com/得到。 如果升级需要费用,页面回显示。
iASP_Mail 组件
Up
属性
描述BodyText消息的文本。使用ClearBodyText方法可以清除文本。CharSet字符设置,字符的默认设置为US Ascii。
有效参数:ConfirmReadConfirmReading标记。如果此属性设置为true并且recipients email支持此特征(已经被激活),recipients email程序将发送一个信息返回到FromAddress,以确定此邮件已经被读过了。ContentTypeContentType属性允许你设置消息文本的ContentType 标题。 例如,你想发送HTML作为消息体的内容类型(contentype)。你可以设置ContentType="text/html",则email程序就可以支持HTML内容并能正确地显示HTML文本。
- 1 = US Ascii
- 2 = ISO-8859-1
注意事项: ContentType的属性在你有附件时被忽略。CustomCharSet如果你想使用字符类型设置,你可以设置CustomCharSet为一个字符设置串。DateTime使用GMT(格林尼治标准时间),iASP_Mail将默认地为你的系统创建一个Date/Time标题。 如果你想覆盖原有的Date/Time设置,可以通过RFC 822 & RFC 1123来定义。Encoding不支持Expires如果此组件是一个赋值的版本,则expire(期满)属性将返回此组件退出功能的时间。FromName消息创建人的名字。FromAddress消息创建人的email地址IgnoreMalformedAddress默认值为false。当其设置为false时,iASP_Mail将检验email地址中的'@',以便调用AddRecipient,AddCC和AddBCC。这时将在Response属性中返回一个错误。如果此属性设置为true,iASP_Mail将不会执行任何地址语法的确认。如果你想通过SMS网关或者传真系统,使用iASP_Mail来发送一个消息,你需要设置此属性为true。IgnoreRecipientErrors默认值为true。如果为true,iASp_Mail将忽略错误消息并通过SMTP服务器返回无效的地址。当一个邮件的地址忙于请求的时候,此属性非常有用。Live不支持Organization在消息中设置组织标题PGPPath不支持PGPParams不支持Priority设置消息的优先级。优先级为1-5并在X-priority对应相应的值。
有效地值:RemoteHost将通过其发送消息的远程SMTP主机。这是一个典型的SMTP服务器,它可以位于你的本地ISP中,或者它可以是一个internal上的SMTP服务器,而位于你的companies premises中。以上三个服务器地址可以被指定(以逗号隔开)。如果一级服务器关闭了,则组件将使用二级服务器发送。以此类推。ReplyToReplyTo 属性允许你指定一个不同的email地址来回复。默认地,邮件程序都使用这样的回复:指定哪个标题就回复哪个标题。ResponseResponse 属性返回任何消息可能发生的错误。ReturnReceiptReturnReceipt标记。如果此属性设置为true并且容器SMTP服务器支持此特性,则容器SMTP服务器将发送一个信息给FromAddress来确认此email已经被释放。SMTPLog如果你需要调试一个log文件,请确认IUSR_XYZ IIS用户由此安全性,可以允许组件写此文件。警告:当多个用户同时访问此组件时,不要使用此设置。它只在单用户调试的时候使用。Subject消息主题SuppressMsgBodySuppressMsgBody属性默认为true, 它和SMTPLog属性联合使用。当SMTPLog设置为一个文件并且SuppreMsgBody为true时,log文件便可收到一个消息文本的备份。如果SuppressMsgBody为false,则消息文本不发送给log。TimeOutTimeout 是iASP_Mail等待一个来自远程服务器的响应的最长时间。默认值为30秒。Urgent在输出消息中可以通过urgent 标记设置X-Urgent标题,不是所有的邮件阅读器都支持此标记。UseMSMailHeaders MS-Mail 属性标题,默认地,除了标准的SMTP优先标题,可发送此标题。通过此属性你可以关闭MS-Mail。Version得到internal组件的版本号。WordWrapWordWrap 属性默认为off。设置WordWrap为true使得消息体的WordWrap在WordWraplen属性指定的位置。WordWrapLenWordWrapLen 属性默认设置为70。你可以通过改变它的值来更改wordwrap发生的位置。
- 1 = 高
- 3 = 中
- 5 = 低
iASP_Mail 组件方法
Up
方法
参数
返回值
描述SendMail无True or FalseSendMail 方法将发送 email。AddRecipientmail.AddRecipient "Jay Jones", "jayj@halcyonsoft.com"True/False based upon success or failure.添加一个新的容器,作为消息中To:的列表。ClearRecipients无无清除 To 列表中所有的容器。AddCCmail.AddCC "Jay Jones", "jayj@halcyonsoft.com"True/False based upon success or failure.添加一个新的容器,作为消息中CC 列表。ClearCCs无无清除CC 列表中所有的容器。AddBCCmail.AddBCC "Jay Jones", "jayj@halcyonsoft.com"True/False based upon success or failure.添加一个新的 BCC 容器,它不显示在任何消息容器列表中。ClearBCCs无无清除BCC 列表中所有的容器。ClearAllRecipients无无清除To、CC和BCC 列表中所有的容器。AddAttachment附加到消息的文件名。N/A给当前的邮件添加附件。你必须使用一个清除的路径来附加文件。ClearAttachments无无清除以前设置的所有附件。ClearBodyText无无清除消息体中已经使用BodyText 属性设置过的所有文本。ClearExtraHeaders无无清除通过AddExtraheader设置过的所有X-Headers。AddExtraHeader建立一个正确的SMTP X-Header的一个字符串值。True or false. Returns true if X-Header was added.添加另外的X-Headers到邮件信封上。GetBodyTextFromFileA String value of pathname,A boolean value (optional) for erase.A boolean value (optional) for showwindow.无从一个文件中载入消息的文本。随意运行PGP在消息文本上。EncodeHeaderstrValuestrValue encoded as String编码一个字符串为RFC1522格式,就像8bit的主题标题一样提供8bit的邮件标题。GetTempPathN/AstrPath返回通过OS设为临时邮件文件路径。
如果您需要技术支持,请将您问题的详细情况发给: support@halcyonsoft.com.