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_Mail 安转



使用iASP组件,你只需将jar文件移至ClaasPath即可。

简单的邮件实例



使用组件非常简单,你只要按照以下步骤即可:
  1. 创建一个对象
  2. 设置某些属性
  3. 调用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)处理



所有或大部分的消息输入来自于一个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)处理  



在某些情况下用户需要在同一段代码使用大量不同的表单来发送email。iASP让你可以循环通过在每一个BodyText属性中分配的变量后附加一个QueryStringForm 的变量。请注意: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属性。

如何使用 DateTime 属性



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 对象的注意事项



你可以在两个不同的时间创建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"

关于升级



最新版本的组件可从得到。 如果升级需要费用,页面回显示。

iASP_Mail 组件



属性

描述
BodyText消息的文本。使用ClearBodyText方法可以清除文本。
CharSet字符设置,字符的默认设置为US Ascii。
有效参数:
  • 1 = US Ascii
  • 2 = ISO-8859-1
ConfirmReadConfirmReading标记。如果此属性设置为true并且recipients email支持此特征(已经被激活),recipients email程序将发送一个信息返回到FromAddress,以确定此邮件已经被读过了。
ContentTypeContentType属性允许你设置消息文本的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对应相应的值。
有效地值:
  • 1 = 高
  • 3 = 中
  • 5 = 低
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发生的位置。

iASP_Mail 组件方法



方法

参数

返回值

描述
SendMailTrue or FalseSendMail 方法将发送 email。
AddRecipientmail.AddRecipient "Jay Jones", "jayj@halcyonsoft.com"True/False based upon suclearcase/" target="_blank" >ccess 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清除ToCCBCC 列表中所有的容器。
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设为临时邮件文件路径。


如果您需要技术支持,请将您问题的详细情况发给: .

原文转自:http://www.ltesting.net