PageAdmin网站内容管理系统(CMS)交流论坛

注册

 

QQ登录

只需一步,快速开始

发新话题 回复该主题

Jmail组件用法介绍-ASP组件讲座 [复制链接]

1#
在一次浏览微软新闻组的时候,看到有人在表扬Jmail。于是我就去下载了一个尝试,发现这个组件做得确实十分好。于是就拿来实现了BBS程序的贴子转发功能。在这里将介绍这个组件的使用方法。

W3 Jmail组件介绍
W3 Jmail是一个smtp组件,利用它可以发送邮件,支持html格式邮件。你可以访问主页:http://tech.dimac.net 下载这个组件。w3 Jmail 发送邮件速度快,功能丰富,并且是免费的。

JMail 使用环境
Webserver (IIS4/PWS4)
Microsoft Windows NT / Windows 98 / Microsoft Windows 95 + Winsock 2.0
(Winsock 2.0可以去微软站点下载:
http://www.microsoft.com/windows/downloads/bin/W95ws2setup.exe)

3.60版本的JMail的特性
Attachments 附件
 Return Receipt发信回执
Detailed logging capabilities 详细日志能力
Priority settings 优先级设定
MIME with BASE64, UUEncode and Quoted-Printable Encoding 邮件编码设置
Queued mailings without separate NT service. 邮件队列发送,无需单独的NT服务
Unlimited redundant servers 没有限制的多余server(SMTP服务器)
Blind Carbon Copy (BCC) 密送
Carbon Copy (CC) 抄送
Urgent flagging 紧急标志
US ASCII 和 ISO-8859-1 编码
UUEncoding UUEncode 编码
X-Headers and custom headers 自定义邮件头
MS Mail and Exchange priority headers. 微软Mail和Exchange优先权头
Internal MX lookup with MX priority and redundancy , 带MX优先权和冗余的Internet MX查找

JMail支持的日志功能是非常有用的。特别是当你在发送邮件的时候遇到困难的时候,就可以察看日志内容分析原因。

JMail 已经检查了下列2000年问题测试
 2000-01-01 Bug - OK
 2000-02-29 Bug - OK
 2000-04-01 Bug - OK (Found in MS VCRT)

JMAIL使用16位精度表示年,所以日期范围限制在 -32767~ 32768

Jmail 组件参考说明

组件使用方法:

set oVar=Server.CreateOject(“jmail.smtpmail”)
    
下表列出了Jmail的属性
编号
属性名
类型
版本
用途
使用举例
1
Body
String
v3.0
信件体,正文,使用AppendText追加内容
JMail.Body = "Hello world"

2
Charset
String
v3.0
字符集,缺省为"US-ASCII"
简体中文是gb2312
Jmail.Charset = "US-ASCII"

3
ContentTransferEncoding
String
v3.0
指定内容传送时的编码方式,缺省是"Quoted-Printable"(例如ChinaASP=C2=DB=CC=B3 代表ChinaASP论坛,等于号后面的是gb码的16进制代码)

Jmail.ContentTransferEncoding = "base64"
4
ContentType
String
v3.0
信件的contentype. 缺省是"text/plain",但是可以设置为其他你想要的类型。如果你以HTML格式发送邮件, 改为"text/html"即可。
JMail.C
5
DeferredDelivery
Date
v3.0
设置延期发送. 如果邮件服务器支持的话,消息到了这个时间才会发送
(Javascript)Jmail.DeferredDelivery = new Date( 2000, 02, 17 ).getVarDate();

6
Encoding
String
v3.0
这个属性可以用来改变附件编码方式(缺省是"base64). 可以选择使用的是"base64", "uuencode" or "quoted-printable"
JMail.Encoding = "base64"
7
ErrorCode
Integer
v3.0
如果JMail.silent设置为true,ErrorCode包含的是错误代码

Response.Write( JMail.ErrorCode );
8
ErrorMessage
String
v3.0
如果JMail.silent设置为true,包含的是错误信息
Response.Write( JMail.ErrorMessage );
9
ErrorSource
String
v3.0
如果JMail.silent设置为true,包含的是错误的来源
Response.Write( JMail.ErrorSource );      
10
ISOEncodeHeaders
String
v3.0
是否将信头编码成iso-8859-1字符集. 缺省是true
JMail.ISOEncodeHeaders = false
11
Lazysend
Boolean
v3.0
这个属性指定Jmail是否一直等到mail发送了然后返回,或者缓冲这条消息然后在后台发送。然而设置了这个属性,你就不能控制错误信息。
        注意:如果选择了这个选项,属性ServerAddress将无效,lazysend将通过dsn查询决定邮件服务器,
        在一些设置里面,这可能有问题。
JMail.LazySend = true;
12
Log
String
v3.0
Jmail创建的日志,如果loging属性设置为true
Response.Write( JMail.Log );
13
Logging
String
v3.0
是否使用日志
JMail.Logging = true
14
MailDomain
String
v3.0
改写发送到邮件服务器的EHLO/HELO命令
JMail.Maildomain = "hello.world.com"
15
MimeVersion
String
v3.0
指定mime版本。缺省是"1.0"
JMail.MimeVersion = "1.0"
16
Priority
Integer
v3.0
优先级. 范围在1-5之间
            1 高优先级. 有些邮件程序称之为紧急
            2 也是高优先级
            3 普通优先级
            4 低优先级
            5 最低的优先级

Jmail.Priority = 3
17
Recipients
String
v3.0
只读属性,返回所有收件人
Response.Write( "" + JMail.Recipients + "" );

18
ReplyTo
String
v3.0
指定一个可选的回信地址
Jmail.ReplyTo = "president@dimac.net"
19
ReturnReceipt
Boolean
v3.0
指定是否发件人需要一个回复收据. 缺省是false
Jmail.ReturnReceipt = true
20
Sender
String
v3.0
指定发件人的邮件地址
Jmail.Sender = "batman@dimac.net"
21
SenderName
String
v3.0
指定发件人的姓名
Jmail.SenderName = "Bat man"
22
ServerAddress
String
v3.0
指定邮件服务器的地址。可以指定多个服务器,用分号点开。可以指定端口号。
如果serverAddress保持空白,Jmail会尝试解决远程邮件服务器,然后直接发送到服务器上去。
Jmail.ServerAddress = "mail.mydom.net; mail2.mydom.net:2500"
23
Silent
Boolean
v3.0
如果设置为true,JMail不会抛出例外错误. JMail.execute() 会根据操作结果返回true或false

Jmail.silent = true

24
SimpleLayout
Boolean
v3.0
设置为true,减少Jmail产生的header信头
Jmail.SimpleLayout = true

25
Subject
String
v3.0
设定消息的标题
Jmail.Subject = "Dimac rocks big time!"
26
UsePipelining
Boolean
v3.0
Overrides if Jmail should use pipelining on a server that supports it.
Jmail.Pipelining = false  
表9.3.1.1-1 Jmail属性列表
下表列出了Jmail的方法
编号
方法
版本
用途
使用举例
1
AddAttachment( FileName, [ContentType] )
v30
添加文件附件到信件
JMail.AddAttachment( "c:\\autoexec.bat" );
2
AddCustomAttachment( FileName, Data )

v3.0
添加自定义附件. This can be used to attach "virtual files" like a generated text string or certificate etc.
JMail.AddCustomAttachment( "readme.txt", "Contents of file" );
3
AddHeader( XHeader, Value )
v3.0
添加用户定义的X-header到message
JMail.AddHeader( "Originating-IP","193.15.14.623" );
4
AddNativeHeader( Header, Value )
v3.0
添加信头
JMail.AddNativeHeader( "MTA-Settings", "route" );
5
AddRecipient( Email )
v3.0
增加收件人
JMail.AddRecipient( "info@dimac.net" );
6
AddRecipientBCC( Email )
v3.0
增加密送收件人
JMail.AddRecipientBCC( "someone@somedomain.net" );
7
AddRecipientCC( Email )
v3.0
增加抄送收件人
JMail.AddRecipientCC( "someone@somedomain.net" );
8
AddRecipientEx( Email, Name )
v3.0
增加一个带名字的收件人
JMail.AddRecipientEx( "info@dimac.net", "Dimac INFO" );
9
AddURLAttachment( bstrURL, bstrAttachAs, [bstrAuth] )
v3.0
下载并添加一个来自url的附件. 第二个参数"AttachAs", 被用来指定信件收到后的文件名. 第3个可选参数是用来可选的WWW-鉴定.
JMail.AddURLAttachment( "http://download.dimac.net/jmail/jmail.exe", "jmail.exe" )

10
AppendBodyFromFile( FileName )
v3.0
将一个文件内容追加到正文后
JMail.AppendBodyFromFile( "c:\\mytext.txt" );
11
AppendText( Text )
v3.0
追加信件的正文内容

JMail.AppendText( "Text appended to message Body" );
12
ClearAttachments()
v3.0
清除附件列表
JMail.ClearAttachments();
13
ClearCustomHeaders()
v3.0
清除所有自定义的信头
JMail.ClearCustomHeaders();

14
ClearRecipients()

v3.0
清除收件人列表
JMail.Close();
15
Execute() :Boolean
v3.0
执行邮件的发送
JMail.Execute();
16
ExtractEmailAddressesFromURL( bstrURL, [bstrAuth] )
v3.0
从一个url下载和添加email地址
JMail.ExtractEmailAddressesFromURL( "http://duplo.org/generateEmailList.asp" );
17
GetMessageBodyFromURL( bstrURL, [bstrAuth] )
v3.0
清除message的正文,并用url的内容替换。Contenttype 会自动设置成URl的contentyp。第二参数(login and password)是可选的。
JMail.GetMessageBodyFromURL( "http://duplo.org/", "login:password" )

18
LogCustomMessage( Message )
v3.0
将用户自定义消息加入Jmail日志. 只有属性loging设置为true时,这项功能才能起作用
JMail.LogCustomMessage( "Hello world" );
表9.3.1.1-2 Jmail方法列表


程序举例:
  <html>
    <head>
    <title>your Title </title>
    <body>
    <%

    Set JMail = Server.CreateObject("JMail.SMTPMail")

    ' 设置serverAddress为我本地的smtp server 地址
    JMail.ServerAddress = "mail.yourdomain.com:25"

    ' 发件人地址
    JMail.Sender = "myemail@mydomain.com"
    JMail.Subject = "邮件标题"

    ' 收件人信箱,请注意这里没有使用等号    
   JMail.AddRecipient "mum@any.com"
    JMail.AddRecipient "dad@some.com"

    ' 属性body可以写也可以读
    ' 如果你希望给body追加文本,你可以使用
    ' JMail.Body = JMail.Body & "Hello world!"
    ' 或者你可以使用JMail.AppendText "Hello World!"
    'JMail.Body = "Here you go. Your request has been approved" &_
    ‘"and the program is attached to this message"

    ‘ 信件的紧急程度
    ' 1 - highest priority (Urgent) 急件
    ' 3 – normal 普通
    ' 5 – lowest  最低程度

    JMail.Priority = 1

            ‘ 发件人IP地址
    JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")

    ' 请注意:IUSR_??? 要有访问的权限
    JMail.AppendBodyFromFile "e:\mail\standard_footer.txt"
    JMail.AddAttachment "e:\products\MyProduct.exe"

    ' 发送邮件
    JMail.Execute

    %>
    <center>

    邮件发送到你的邮箱 (<%=request.form("email")%>).

    </center>
    </body>
    </html>

       但是上面的例子存在这样的问题:由于邮件使用英文编码(缺省的),所以用outlook/outlook express收,看到的缺省页面中文是乱码,必须手工设置为简体中文(GB2312),才能正常阅读。其实我们只要在上面的程序Jmail.execute之前加上 Jmail.CharSet=”gb2312”,那么邮件的编码就是中文了。
还有一个问题是如何发送html格式的邮件。下面是发送html格式邮件的例子
       Set JMail = Server.CreateObject("JMail.SMTPMail")
       JMail.Charset = "gb2312"
       JMail.C
       JMail.ServerAddress =”mail.yourhost.com:25”

       JMail.Sender = “yourname@yourhost.com
       JMail.Subject = “html格式的邮件”

       JMail.AddRecipient “myname@myhost.com

JMail.Body = “<html><body><p>你好,谢谢你访问我们的网站” & _
“<a href=’http://www.yourHost.com’ target=_blank>yourHost</a>”& _
”</p></body></html>”

       JMail.Priority = 1

       JMail.AddHeader "Originating-IP", _
               Request.ServerVariables("REMOTE_ADDR")

       JMail.Execute
       set jMail=nothing
分享 转发
TOP
发新话题 回复该主题