iASP_Mail 组件介绍见内
发表于:2007-06-30来源:作者:点击数:
标签:
iASP-Mail 让你直接从一个网页发送SMTP邮件。其特性包括: SMTP (发送) 消息 多种文件附件支持 MI ME,UUencoding ASCII和ISO-8859-1字符设置。 特殊Header支持(Standard X-Priority headers,MS Mail (including Exchange) priority headers, Urgent heade
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组件,你只需将jar文件移至ClaasPath即可。
使用组件非常简单,你只要按照以下步骤即可: - 创建一个对象
- 设置某些属性
- 调用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方法的结果来决定邮件发送是否成功。
所有或大部分的消息输入来自于一个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")
在某些情况下用户需要在同一段代码使用大量不同的表单来发送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
可以更改一对标题(header)来设置message属性。
Priority 属性设置优先级的范围为1-5。1代表优先级高,3代表优先级正常,5的优先级最底。另外,你可以设置你当前属性的优先级。当前属性为true/false属性。
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对象: - 发送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
iASP_Mail提供了一个主机属性来设立远程SMTP服务器地址。RemoteHost的属性可以设置为你的一级和二级服务器地址(用分号隔开)。一级服务器关闭时,iASP_mail将使用二级服务器。例如:mail.RemoteHost = "mailhost.halcyonsoft.com;mailhost.anotherisp.com"
最新版本的组件可从得到。 如果升级需要费用,页面回显示。
属性 |
描述 |
BodyText | 消息的文本。使用ClearBodyText方法可以清除文本。 |
CharSet | 字符设置,字符的默认设置为US Ascii。
有效参数: - 1 = US Ascii
- 2 = ISO-8859-1
|
ConfirmRead | ConfirmReading标记。如果此属性设置为true并且recipients email支持此特征(已经被激活),recipients email程序将发送一个信息返回到FromAddress,以确定此邮件已经被读过了。 |
ContentType | ContentType属性允许你设置消息文本的ContentType 标题。 例如,你想发送HTML作为消息体的内容类型(contentype)。你可以设置ContentType="text/html",则email程序就可以支持HTML内容并能正确地显示HTML文本。
注意事项: 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中。以上三个服务器地址可以被指定(以逗号隔开)。如果一级服务器关闭了,则组件将使用二级服务器发送。以此类推。 |
ReplyTo | ReplyTo 属性允许你指定一个不同的email地址来回复。默认地,邮件程序都使用这样的回复:指定哪个标题就回复哪个标题。 |
Response | Response 属性返回任何消息可能发生的错误。 |
ReturnReceipt | ReturnReceipt标记。如果此属性设置为true并且容器SMTP服务器支持此特性,则容器SMTP服务器将发送一个信息给FromAddress来确认此email已经被释放。 |
SMTPLog | 如果你需要调试一个log文件,请确认IUSR_XYZ IIS用户由此安全性,可以允许组件写此文件。警告:当多个用户同时访问此组件时,不要使用此设置。它只在单用户调试的时候使用。 |
Subject | 消息主题 |
SuppressMsgBody | SuppressMsgBody属性默认为true, 它和SMTPLog属性联合使用。当SMTPLog设置为一个文件并且SuppreMsgBody为true时,log文件便可收到一个消息文本的备份。如果SuppressMsgBody为false,则消息文本不发送给log。 |
TimeOut | Timeout 是iASP_Mail等待一个来自远程服务器的响应的最长时间。默认值为30秒。 |
Urgent | 在输出消息中可以通过urgent 标记设置X-Urgent标题,不是所有的邮件阅读器都支持此标记。 |
UseMSMailHeaders | MS-Mail 属性标题,默认地,除了标准的SMTP优先标题,可发送此标题。通过此属性你可以关闭MS-Mail。 |
Version | 得到internal组件的版本号。 |
WordWrap | WordWrap 属性默认为off。设置WordWrap为true使得消息体的WordWrap在WordWraplen属性指定的位置。 |
WordWrapLen | WordWrapLen 属性默认设置为70。你可以通过改变它的值来更改wordwrap发生的位置。 |
方法 |
参数 |
返回值 |
描述 |
SendMail | 无 | True or False | SendMail 方法将发送 email。 |
AddRecipient | mail.AddRecipient "Jay Jones", "jayj@halcyonsoft.com" | True/False based upon suclearcase/" target="_blank" >ccess or failure. | 添加一个新的容器,作为消息中To:的列表。 |
ClearRecipients | 无 | 无 | 清除 To 列表中所有的容器。 |
AddCC | mail.AddCC "Jay Jones", "jayj@halcyonsoft.com" | True/False based upon success or failure. | 添加一个新的容器,作为消息中CC 列表。 |
ClearCCs | 无 | 无 | 清除CC 列表中所有的容器。 |
AddBCC | mail.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到邮件信封上。 |
GetBodyTextFromFile | A String value of pathname,A boolean value (optional) for erase.A boolean value (optional) for showwindow. | 无 | 从一个文件中载入消息的文本。随意运行PGP在消息文本上。 |
EncodeHeader | strValue | strValue encoded as String | 编码一个字符串为RFC1522格式,就像8bit的主题标题一样提供8bit的邮件标题。 |
GetTempPath | N/A | strPath | 返回通过OS设为临时邮件文件路径。 |
如果您需要技术支持,请将您问题的详细情况发给: .
原文转自:http://www.ltesting.net