首先是jmail.smtpmail的核心代码:
<%
Set jmail = Server.CreateObject("JMAIL.SMTPMail") '创建一个JMAIL对象
jmail.silent = true 'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE
jmail.logging = true '启用使用日志
jmail.Charset = "GB2312" '邮件文字的代码为简体中文
jmail.ContentType = "text/html" '邮件的格式为HTML的
jmail.ServerAddress = "Server Address" '发送邮件的服务器
jmail.AddRecipient Email '邮件的收件人
jmail.SenderName = "SenderName" '邮件发送者的姓名
jmail.Sender = "Email Address" '邮件发送者的邮件地址
jmail.Priority = 1 '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
jmail.Subject = "Mail Subject" '邮件的标题
jmail.Body = "Mail Body" '邮件的内容
jmail.AddRecipientBCC Email '密件收件人的地址
jmail.AddRecipientCC Email '邮件抄送者的地址
jmail.Execute() '执行邮件发送
jmail.Close '关闭邮件对象
%>
w3 Jmail4.3组件重新设计了其内部结构——使用Message对象代替原来的单一对象Jmail.smtpmail发送邮件,有些方法需要身份验证的(如163、yahoo等),可以用下面的方法解决:
<%
Set jmail = Server.CreateObject("JMAIL.Message") '建立发送邮件的对象
jmail.silent = true '屏蔽例外错误,返回FALSE跟TRUE两值j
mail.logging = true '启用邮件日志
jmail.Charset = "GB2312" '邮件的文字编码为国标
jmail.ContentType = "text/html" '邮件的格式为HTML格式
jmail.AddRecipient Email '邮件收件人的地址
jmail.From = "Email From for Sender" '发件人的E-MAIL地址
jmail.MailServerUserName = "UserName of Email" '登录邮件服务器所需的用户名
jmail.MailServerPassword = "Password of Email" '登录邮件服务器所需的密码
jmail.Subject = "Mail Subject" '邮件的标题
jmail.Body = "Mail Body" '邮件的内容
jmail.Priority = 1 '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
jmail.Send("Server Address") '执行邮件发送(通过邮件服务器地址)
jmail.Close() '关闭对象
%>
再讲一下微软自带的CDONTS组件的发信的方法:
<%
Set cdomail = Server.CreateObject("CDONTS.NewMail") '建立邮件对象
cdomail.Subject = "Mail Subject" '邮件标题
cdomail.From = "Sender's Mail" '发件人的地址
cdomail.To = "Email will from" '收件人的地址
cdomail.Body = "Mail Body" '邮件的内容
cdomail.Send '执行发送
%>
这种方法发送邮件是最简单的,同时也带来一定的问题,就是很少有服务器会开这项服务!
我们写程序,一般情况下都是说要代码模块化,这样方便维护,同时也方便移植。因此,我在这里将这个发邮件的写成一个子程,在调用的时候可以直接调用(当然,如果你高兴写成函数的话也是可以的,这个主要是看个人兴趣):
<%
'参数说明
'Subject : 邮件标题
'MailAddress : 发件服务器的地址,如smtp.163.com
'Email : 收件人邮件地址
'Sender : 发件人姓名
'Content : 邮件内容
'Fromer : 发件人的邮件地址
Sub SendAction(subject, mailaddress, email, sender, content, fromer)
Set jmail = Server.CreateObject("JMAIL.SMTPMail") '创建一个JMAIL对象
jmail.silent = true 'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE
jmail.logging = true '启用使用日志
jmail.Charset = "GB2312" '邮件文字的代码为简体中文
jmail.ContentType = "text/html" '邮件的格式为HTML的
jmail.ServerAddress = mailaddress '发送邮件的服务器
jmail.AddRecipient Email '邮件的收件人
jmail.SenderName = sender '邮件发送者的姓名
jmail.Sender = fromer '邮件发送者的邮件地址
jmail.Priority = 1 '邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
jmail.Subject = subject '邮件的标题
jmail.Body = content '邮件的内容
'由于没有用到密抄跟抄送,这里屏蔽掉这两句,如果您有需要的话,可以在这里恢复
'jmail.AddRecipientBCC Email '密件收件人的地址
'jmail.AddRecipientCC Email '邮件抄送者的地址
jmail.Execute() '执行邮件发送
jmail.Close '关闭邮件对象
End Sub
'调用此Sub的例子
Dim strSubject,strEmail,strMailAdress,strSender,strContent,strFromer
strSubject = "这是一封用JMAIL发送的测试邮件"
strContent = "JMail组件发送测试成功!"
strEmail = "runbing@eyou.com"
strFromer = "runbing@eyou.com"
strMailAddress = "mail.ubbcn.com"
Call SendAction (strSubject,strMailaddress,strEmail,strSender,strContent,strFromer)
%>
以上是我对发邮件代码的一个粗略的见解,忘大家不吝赐教!
以下是JMail的一些文档及属性参考:
W3 Jmail 参考说明
jmail.smtpmail
Body : String
(v3.)
信件体,正文,使用AppendText追加内容
如:JMail.Body = "Hello world"
Charset : String
(v3.)
字符集,缺省为"US-ASCII"
如:JMail.Charset = "US-ASCII"
ContentTransferEncoding : String
(v3.)
指定内容传送时的编码方式,缺省是"Quoted-Printable"
如:JMail.ContentTransferEncoding = "base64"
ContentType : String
(v3.)
信件的contentype. 缺省是"text/plain",但是可以设置为其他你想要的类型.
如果你以HTML格式发送邮件, 改为"text/html"即可。
如:JMail.ContentType = "text/html"
DeferredDelivery : Date
(v3.)
设置延期发送. 如果邮件服务器支持的话,消息到了这个时间才会发送
如:(Javascript)JMail.DeferredDelivery = new Date( 2, 2, 17 ).getVarDate();
Encoding : String
(v3.)
这个属性可以用来改变附件编码方式(缺省是"base64). 可以选择使用的是"base64", "uuencode" or "quoted-printable"
如:JMail.Encoding = "base64"
ErrorCode : Integer
(v3.)
如果JMail.silent设置为true,ErrorCode包含的是错误代码
如:Response.Write( JMail.ErrorCode );
ErrorMessage : String
(v3.)
如果JMail.silent设置为true,包含的是错误信息
如:Response.Write( JMail.ErrorMessage );
ErrorSource : String
(v3.)
Contains the error source if JMail.silent is set to true
如:Response.Write( JMail.ErrorSource );
ISOEncodeHeaders : Boolean
(v3.)
是否将信头编码成iso-8859-1字符集. 缺省是true
如:JMail.ISOEncodeHeaders = false
Lazysend : Boolean
(v3.)
这个属性指定Jmail是否一直等到mail发送了然后返回,或者缓冲这条消息然后在后台发送。
然而设置了这个属性,你就不能控制错误信息。
注意:如果选择了这个选项,属性ServerAddress将无效,lazysend将通过dsn查询决定邮件服务器,
在一些设置里面,这可能有问题。
如:JMail.LazySend = true;
Log : String
(v3.)
Jmail创建的日志,如果loging属性设置为true
如:Response.Write( JMail.Log );
Logging : Boolean
(v3.)
是否使用日志
如:JMail.Logging = true
MailDomain : String
(v3.)
This can be used to override the EHLO/HELO statement to your mailserver
如:JMail.Maildomain = "hello.world.com"
MimeVersion : String
(v3.)
指定mime版本。缺省是"1."
如:JMail.MimeVersion = "1."
Priority : Integer
(v3.)
优先级. 范围在1-5之间
1 高优先级. 有些邮件程序称之为紧急
2 也是高优先级
3 普通优先级
4 低优先级
5 最低的优先级
如:JMail.Priority = 3
Recipients : String
(v3.)
只读属性,返回所有收件人
如:Response.Write( "" + JMail.Recipients + "" );
ReplyTo : String
(v3.)
指定一个可选的回信地址
如:JMail.ReplyTo = "president@dimac.net"
ReturnReceipt : Boolean
(v3.)
指定是否发件人需要一个回复收据. 缺省是false
如:JMail.ReturnReceipt = true
Sender : String
(v3.)
指定发件人的邮件地址
如:JMail.Sender = "batman@dimac.net"
SenderName : String
(v3.)
指定发件人的姓名
如:JMail.SenderName = "Bat man"
ServerAddress : String
(v3.)
指定邮件服务器的地址。可以指定多个服务器,用分号点开。可以指定端口号。
如果serverAddress保持空白,JMail会尝试解决远程邮件服务器,然后直接发送到服务器上去。
如:JMail.ServerAddress = "mail.mydom.net; mail2.mydom.net:25"
Silent : Boolean
(v3.)
如果设置为true,JMail不会抛出例外错误. JMail.execute() 会根据操作结果返回true或false
如:JMail.silent = true
SimpleLayout : Boolean
(v3.)
设置为true,减少Jmail产生的header信头
如:JMail.SimpleLayout = true
Subject : String
(v3.)
设定消息的标题
如:JMail.Subject = "Dimac rocks big time!"
UsePipelining : Boolean
(v3.)
Overrides if JMail should use pipelining on a server that supports it.
如:JMail.Pipelining = false
AddAttachment( FileName, [ContentType] )
(v3.)
添加文件附件到信件
如:JMail.AddAttachment( "c://autoexec.bat" );
AddCustomAttachment( FileName, Data )
(v3.)
添加自定义附件. This can be used to attach "virtual files" like a generated text string or certificate etc.
如:JMail.AddCustomAttachment( "readme.txt", "Contents of file" );
AddHeader( XHeader, Value )
(v3.)
添加用户定义的X-header到message
如:JMail.AddHeader( "Originating-IP","193.15.14.623" );
AddNativeHeader( Header, Value )
(v3.)
添加信头
如:JMail.AddNativeHeader( "MTA-Settings", "route" );
AddRecipient( Email )
(v3.)
增加收件人
如:JMail.AddRecipient( "info@dimac.net" );
AddRecipientBCC( Email )
(v3.)
增加密件收件人
如:JMail.AddRecipientBCC( "someone@somedomain.net" );
AddRecipientCC( Email )
(v3.)
增加抄送收件人
如:JMail.AddRecipientCC( "someone@somedomain.net" );
AddRecipientEx( Email, Name )
(v3.)
增加一个带名字的收件人
如:JMail.AddRecipientEx( "info@dimac.net", "Dimac INFO" );
AddURLAttachment( bstrURL, bstrAttachAs, [bstrAuth] )
(v3.)
下载并添加一个来自url的附件. 第二个参数"AttachAs", 被用来指定信件收到后的文件名. 第3个可选参数是用来可选的WWW-鉴定.
如:JMail.AddURLAttachment( "http://download.dimac.net/jmail/jmail.exe", "jmail.exe" )
AppendBodyFromFile( FileName )
(v3.)
将一个文件内容追加到正文后
如:JMail.AppendBodyFromFile( "c://mytext.txt" );
AppendText( Text )
(v3.)
追加信件的正文内容
如:JMail.AppendText( "Text appended to message Body" );
ClearAttachments()
(v3.)
清除附件列表
如:JMail.ClearAttachments();
ClearCustomHeaders()
(v3.)
清除所有自定义的信头
如:JMail.ClearCustomHeaders();
ClearRecipients()
(v3.)
清除收件人列表
如:JMail.ClearRecipients();
Close()
(v3.)
强制JMail关闭缓冲的与邮件服务器的连接
如:JMail.Close();
Execute() : Boolean
(v3.)
执行邮件的发送
如:JMail.Execute();
ExtractEmailAddressesFromURL( bstrURL, [bstrAuth] )
(v3.)
从一个url下载和添加email地址
如:JMail.ExtractEmailAddressesFromURL( "http://duplo.org/generateEmailList.asp" );
GetMessageBodyFromURL( bstrURL, [bstrAuth] )
(v3.)
清除message的正文,并用url的内容替换。Contenttype 会自动设置成URl的contentyp。第二参数(login and password)是可选的。
如:JMail.GetMessageBodyFromURL( "http://duplo.org/", "login:password" )
LogCustomMessage( Message )
(v3.)
将用户自定义消息加入JMail日志. 只有属性loging设置为true时,这项功能才能起作用
如:JMail.LogCustomMessage( "Hello world" );
Jmail的属性和方法
Body : String
(v3.)
E-Mail的主体
JMail.Body = "Hello world"
Charset : String
(v3.)
设定邮件的字符集,默认为"US-ASCII"
JMail.Charset = "US-ASCII"
ContentTransferEncoding : String
(v3.)
指定内容编码, 默认为 "Quoted-Printable"
JMail.ContentTransferEncoding = "base64"
ContentType : String
(v3.)
这个邮件的头设置, 默认为 "text/plain" 能设
置成你需要的任何情况。 你想发送HTML信息,改这个头文件为 "text/html"
JMail.ContentType = "text/html"
DeferredDelivery : Date
(v3.)
设置时间。 如果MAILSERVER服务器支持,可以设置何时发送邮件。
JMail.DeferredDelivery = new Date( 2, 2, 17 ).getVarDate();
Encoding : String
(v3.)
This can be used to change the default Attachment encoding from base64. Valid options are
"base64", "uuencode" or "quoted-printable"
JMail.Encoding = "base64"
ErrorCode : Integer
(v3.)
报错误信息,如果JMail.silent被设置成true
Response.Write( JMail.ErrorCode )
ErrorMessage : String
(v3.)
报错误信息,如果JMail.silent被设置成true
Response.Write( JMail.ErrorMessage )
ErrorSource : String
(v3.)
报错误信息,如果JMail.silent被设置成true
Response.Write( JMail.ErrorSource )
ISOEncodeHeaders : Boolean
(v3.)
头信息代码按照iso-8859-1字符设置。 The default is true.
JMail.ISOEncodeHeaders = false
Lazysend : Boolean
(v3.)
这个属性是将邮件放入缓冲直至发出为止,的不到任何的错误信息
JMail.LazySend = true;
Log : String
(v3.)
当loging被设置后,这个LOG被JMAIL生成
Response.Write( JMail.Log )
Logging : Boolean
(v3.)
能/不能登陆用JMAIL
JMail.Logging = true
MailDomain : String
(v3.)
可以忽略 EHLO/HELO 状态对你的mailserver
JMail.Maildomain = "hello.world.com"
MimeVersion : String
(v3.)
专门的 mime 版本. The default is "1."
JMail.MimeVersion = "1."
Priority : Integer
(v3.)
邮件的优先级,可以范围从1到5。
越大的优先级约高,比如,5最高,1最低
一般设置为3
JMail.Priority = 3
Recipients : String
(v3.)
这个信息的接收者只有只读属性
Response.Write( "" + JMail.Recipients + "" )
ReplyTo : String
(v3.)
指定一个可选的回信地址
JMail.ReplyTo = "president@dimac.net"
ReturnReceipt : Boolean
(v3.)
是否按寄件人的要求回信,默认是"false"
JMail.ReturnReceipt = true
Sender : String
(v3.)
邮寄的地址
JMail.Sender = "batman@dimac.net"
SenderName : String
(v3.)
收信人姓名
JMail.SenderName = "Bat man"
ServerAddress : String
(v3.)
SERVER的地址。可以有很多的SERVER地址,后可跟端口号
JMail.ServerAddress = "mail.mydom.net; mail2.mydom.net:25"
Silent : Boolean
(v3.)
设置成TRUE后JMAIL将检查所有的邮件在 JMail.execute() 执行后
返回真或假根据信件发送的成功与否depending on the success of the operation
JMail.silent = true
SimpleLayout : Boolean
(v3.)
设置成TRUE减少JMAIL产品头数量
JMail.SimpleLayout = true
Subject : String
(v3.)
邮件的标题。
JMail.Subject = "Dimac rocks big time!"
UsePipelining : Boolean
(v3.)
管道的支持。
JMail.Pipelining = false
JMAIL的方法
AddAttachment( FileName, [ContentType] )
(v3.)
加入一个附件
JMail.AddAttachment( "c://autoexec.bat" );
AddHeader( XHeader, Value )
(v3.)
加入一个头信息
JMail.AddHeader( "Originating-IP","193.15.14.623" );
AddNativeHeader( Header, Value )
(v3.)
加入一个头信息
JMail.AddNativeHeader( "MTA-Settings", "route" );
AddRecipient( Email )
(v3.)
加入一个收件者
JMail.AddRecipient( "info@dimac.net" );
AddRecipientBCC( Email )
(v3.)
屏蔽某个接受者。不给其发送邮件
JMail.AddRecipientBCC( "someone@somedomain.net" );
AddRecipientCC( Email )
(v3.)
抄写一份给另一接受者
JMail.AddRecipientCC( "someone@somedomain.net" );
AddRecipientEx( Email, Name )
(v3.)
加入和邮件相对应的名称
JMail.AddRecipientEx( "info@dimac.net", "Dimac INFO" );
AppendBodyFromFile( FileName )
(v3.)
将文件的内容发送出去
JMail.AppendBodyFromFile( "c://mytext.txt" );
AppendText( Text )
(v3.)
添加附件
JMail.AppendText( "Text appended to message Body" );
ClearAttachments()
(v3.)
清除附件列表
JMail.ClearAttachments();
ClearCustomHeaders()
(v3.)
清空所有的用户头信息
JMail.ClearCustomHeaders();
ClearRecipients()
(v3.)
清空收件箱
JMail.ClearRecipients();
Close()
(v3.)
强行制止邮件的发送
JMail.Close();
Execute() : Boolean
(v3.)
执行邮件发送到SERVER
JMail.Execute();
ExtractEmailAddressesFromURL( bstrURL, [bstrAuth] )
(v3.)
从URL或 下载 加入邮件地址
JMail.ExtractEmailAddressesFromURL( "http://duplo.org/generateEmailList.asp" );
LogCustomMessage( Message )
(v3.)
登陆用户信息到JMAIL的LOG,这个功能只有将LOGING设置为TRUE时可以用
JMail.LogCustomMessage( "Hello world" );