W3 Jmail使用详细教程+简单实例

W3 JMail 邮件组件是Dimac公司开发的用来完成邮件的发送、接收、加密和集群传输等工作的。w3 Jmail组件是国际最为流行的邮件组件之一,当今世界上绝大部分ASP程序员都在使用w3 Jmail组件构建邮件发送系统,那是因为w3 Jmail组件使用了新的内核技术,使其更加可靠和稳定。 

一、下面向读者介绍w3 Jmail4.3组件的新特性: 

1、 w3 Jmail4.3组件重新设计了其内部结构——使用Message对象代替原来的单一对象Jmail.smtpmail发送邮件; 

2、 w3 Jmail4.3组件一共有十多个对象(后面将详细介绍)——这些对象中,绝大多数是针对Jmail.Message对象操作的; 

3、 支持从POP3邮件服务器收取邮件; 

4、 支持加密邮件的传输; 

5、 快速发送,一次会话就完成邮件发送; 

6、 还有一个特性就是可以使用w3 Jmail4.3组件的集群发送功能一次发送成千上万个邮件,还可以通过邮件合并(mailmerge)对象来个性化邮件。 

二、Jmail邮件组件的安装及卸载: 

1、 安装 

跟使用别个组件一样,在使用Jmail邮件组件之前要先安装或注册该组件Jmail.dll。具体注册方法,是先把Jmail.dll文件拷贝到硬盘的某一目录下(如C:/Jmail/Jmail.dll),然后执行命令Regsvr32 C:/Jmail/Jmail.dll即可。 

2、 卸载 

卸载组件是安装组件的相反动作,可以使用参数/U来卸载已安装的组件,执行命令Regsvr32 /U Jmail.dll即可。 

三、详细介绍W3 Jmail组件的对象(12个): 

1、.POP3对象 

属性(或方法) 
说明 

Connect(Username,Password,Server,Port) 
连接POP3服务器,断口可选,默认110。 

DeleteMessages() 
从邮件服务器上删除所有邮件。 

DeleteSingleMessage(MessageID) 
从邮件服务器上删除由MessageID指定的邮件。 

Disconnect() 
关闭跟邮件服务器的连接。 

DownloadHeaders() 
从邮件服务器上读取所有的邮件头并传递给Messages集合。 

DownloadMessages() 
从邮件服务器读取所有邮件。 

DownloadSingleHeader(MessageID) 
从邮件服务器读取指定的邮件头并传递给Messages集合。 

DownloadUnreadMessages() 
从邮件服务器上读取所有未读邮件。 




2、.Messages对象 

属性(或方法) 
说明 

Clear() 
清除集合中的所有内容,并不会删除邮件服务器上的任何邮件。 

Count():Integer 
返回集合中记录的数目:I=Messages.Count 

Item(Index):Pointer 
返回一个Message对象。Set oMsg=Messages.Item(0) 




3、.Message对象 

属性(或方法) 
说明 

AddAttachment(FileName,isInline,ContentType):String 
给邮件添加一个文件型的附件。isInline设置为True时,添加的这个附件就是一个可嵌入的附件。 

AddCustomAttachment(FileName,Data,isInline):String 
给邮件添加一个自定义类型的附件。 

AddHeader(Xheader,Value) 
给邮件添加一个自定义邮件头X-Header。 

AddNativeHeader(Header,Value) 
给邮件添加一个邮件头。 

AddRecipient(emailAddress,recipientName,PGPKey) 
给邮件添加一个收件人。RecipientName和PGPKey是可选项,RecipientName为收件人姓名,PGPKey给邮件加密。 

AddRecipientBCC(emailAddress,PGPKey) 
添加一个邮件暗送人(BCC)地址。 

AddRecipientCC(emailAddress,recipientName,PGPKey) 
给邮件添加一个邮件抄送人(CC)地址。 

AddURLAttachment(bstrURL,bstrAttachAs,isInline,bstrAuth):String 
从指定的URL下载文件并添加为邮件附件。参数bstrAttachAs是用来更改添加为邮件附件的文件名。 

AppendBodyFromFile(FileName) 
清除邮件正文,并把指定文件的内容作为邮件正文。 

AppendHTML(Text) 
从邮件追加HTML格式正文,如例所示:Message. AppendHTML(“<H3>Hello Word</H3>”) 

AppendText(Text) 
向邮件添加文本正文。 

Clear() 
清除所有邮件消息,是成为一个空对象。 

ClearAttachments() 
清除附件列表。如:Message.ClearAttachments 

ClearCustomHeaders() 
清除所有自定义的邮件头。 

ClearRecipients() 
清除所有收件人地址列表。 

Close() 
释放Jmail与邮件服务器连接而使用的缓存(Cache)。 

DecodeHeader(Header):String 
输出一个邮件头消息。 

ExtractEmailAddressesFromURL(bstrURL,bstrAuth) 
从指定的网制(URL)读取并添加邮件列表。 

GetMessageBodyFromURL(同上) 
删除邮件正文并用指定的URL的内容代替。 

KeyInformation(keyIdentifier):pointer 
返回一个PGPKey对象。 

LoadFromStream(Stream) 
从数据库流读取数据,该数据库流必须符合RFC822标准。 

LogCustomMessage(Message) 
给Jmail日志文件添加自定义日志。此函数只有在logging属性被设置为True时有效。 

Nq() 
将邮件追加到发送队列等待发送。 

ParseMessage(MessageSource) 
解析一个邮件,数据流必须符合RFC822格式标准。 

SaveToStream(Stream) 
保存邮件到数据流,数据流必须符合RFC822格式标准。 

Send(MailServer,enque):Boolean 
发送邮件。邮件服务器是一个描述邮件服务器名称或地址的字符串,用户名和密码是可选项。当要发送认证邮件时使用格式为:用户名:密码@邮件服务器 

SendToNewsGroup(ServerName,NewsGroup) 
使用指定的NNTP服务器发送邮件到新闻组,多个邮件用“,”隔开。 

About():string 
设置一些附加信息。 

Attachments():Pointer 
返回邮件的附件集合。Set Attachments=Message.Attachments 

Body():String 
返回邮件正文。Response.Write (Message.Body) [NextPage]
  BodyText():String 
返回全部的文本正文。Response.Write (Message.BodyText) 

Charset():String 
设置邮件使用的字符集。默认为US-ASCII,支持中文则设置为GB2312。 

ContentTransferEncoding():String 
设置邮件编码。默认为:Quoted-Printable. 

ContentType():string 
返回正文类型。 

Date():Date 
返回邮件发送时间。 

DeferredDelivery():Date 
设置邮件定时发送。 

Encoding():String 
设置附件的默认编码:Base64或Quoted-Printable 

EncryptAttachments():Boolean 
设置为True时,所有的附件都被加密,当然是编译器可用的情况下。其默认值为True. 

ErrorCode():Integer 
如果message.silent设置为True时,该函数包含错误号。 

ErroeMessage():String 
如果message.silent设置为True时,该函数包含错误描述。 

ErroeSource():String 
如果message.silent设置为True时,该函数包含错误来源。 

From():String 
返回或设置发件人的Email地址。 

FromName():String 
返回或设置发件人的名字。 

HtmlBody():String 
返回或设置邮件正文的HTML部分。 

ISOEncodeHeaders():Boolean 
邮件头是否使用iso-8859-1编码。(默认为True) 

Log():String 
当Logging为True时,该函数返回创建的日志。 

Logging():Boolean 
是否启用日志。Message.Logging=True时,启用日志。 

MailData():String 
返回邮件的源代码。 

MailDomain():String 
设置发送邮件时使用的邮件服务器。 

MailServerPassWord():String 
当邮件服务器使用SMTP发信认证时,该函数设置登录密码。 

MailServerUserName():String 
当邮件服务器使用SMTP发信认证时,该函数设置登录帐号。 

MimeVersion():String 
声明Mime版本,默认为1.0。 

MsPickupdirectory():String 
指定MS SMTP服务的Pickup文件夹的位置。 

PGPEncrypt():Boolean 
当邮件是使用PGP发送时并该属性被设置为True时,该邮件将被自动加密。 

PGPSign():Boolean 
当邮件是使用PGP发送时并该属性被设置为True时,该邮件将被自动签名。 

Priority():Byte 
设置邮件的优先级:1、2和3 

Recipients():Pointer 
返回收件人集合。 

RecipientsString():String 
返回收件人集合(只读)。 

ReplyTo():String 
指定一个回复地址。 

Silent():Boolean 
当设置为True时,Send()方法就会忽略错误并不将错误信息返回给操作系统。 

SimpleLayout():Boolean 
当设置为True时,发信时Jmail不会添加邮件头到邮件里。 

Size():Integer 
返回邮件的总字节数。 

Subject():String 
设置邮件标题。 

Text():string 
返回完整的邮件内容。 

Version():String 
返回Jmal的版本信息。 




4、 Headers对象 

属性(或方法) 
描述 

GetHeader(HeaderName):String 
返回指定的邮件头的值。 

Text():String 
返回所有的邮件头的值。 




5、 Recipients对象 

属性(或方法) 
描述 

Add(Value) 
追加一个收件人到集合中。 

Clear() 
清除集合中的全部记录。 

Count():Integer 
返回集合中收件人的总数。 

Item(Index):Pointer 
返回集合中的一个指定的收件人。 




6、 Recipient对象 

属性(或方法) 
描述 

New(Name,Email,recipientType):Pointer 
创建一个可以添加到收件人集合中Recipients的收件人。 

Email():String 
返回收件人的邮件。 

Name():String 
返回收件人的姓名。 

ReType():Integer 
返回收件人模式(收件人To=0,抄送CC=1,暗送BCC=2)。 




7、 Attachments对象 

属性(或方法) 
描述 

Add(Attachment) 
添加一个附件到集合。 

Clear() 
清除集合中的全部附件。 

Count():Integer 
返回集合中附件的总数。 

Item(Index):Pointer 
返回集合中指定的附件。[NextPage]
   8、 Attachment对象 

属性(或方法) 
描述 

New(FileName,ContentType,Data):Pointer 
创建一个可以加入到Attachments集合的附件。如果指定Data的值,那么Jmail将创建一个以Data参数为内容的自定义附件。 

SaveToFile(FileName) 
保存附件到硬盘。 

ContentType():String 
返回附件类型(ContentType) 

Data():String 
返回附件的内容。 

BinaryData():String 
以二进制模式返回附件的内容。 

IsInline():Boolean 
如果附件被设置为可嵌入(inline),则返回True。 

Name():String 
返回附件的文件名称。 

Size():Integer 
返回附件的大小。 





9、 MailMerge对象 

属性(或方法) 
描述 

BulkMerge(RecordSet,enque,Maildestination) 
参照邮件模板合并所有记录,要指定使用的pickuo文件夹或邮件服务器。 

Expand():Pointer 
参照用户指定的方式合并邮件模板(mailTemplate)。 

ExpandFromRecordSet(RecordSet):Pointer 
参照邮件模板(mailTemplate)合并ADO对象中的一例。 

SetDebugMode(TestMailAddress,TestCount) 
将邮件合并(mailMerge)设置为测试模式。 

Item(VariableNmae):String 
手工设置合并参数。注意:该功能不使用于ADO数据例的合并。 

MailTemplate():Pointer 
设置一个创建好的Message对象,这个对象将被作为邮件合并的模板。 

MergeAttachments():Boolean 
当该属性设置为 True时,附件被作为邮件合并的一个选项。 





10、 PGPKeys对象 

属性(或方法) 
描述 

Count():Integer 
返回密码的总数。 

Item(Index):Pointer 
返回PGPKey信息对象。 





11、 PGPKeyInfo对象 

属性(或方法) 
描述 

KeyCreateDate():String 
返回邮件密码创建的时间。 

KeyID():String 
返回密码的ID号。 

KeyUser():String 
返回创建密码的用户名。 





12、 SpeedMailer对象 

属性(或方法) 
描述 

EnqueMail(FromEmail,RecipientEmails, 

Subject,Body,MsPickupdirectory) 
添加一个邮件到发送队列。内容、主题等数据通过该方法的参数传递。 

SendMail(FromEMail,RecipientEMails, 

Subject,Body,MailServers) 
通过SMTP发送一封邮件。内容、主题等数据通过该方法的参数传递。 

SendXMLMail(XML) 
关于该函数的用法请访问:http://xml.dimac.net/namespace/jmail 





四、利用Jmail4.3邮件组件发送邮件示例: 

通过以上的介绍,相信读者对Dimac W3 Jmail及其一些常用的对笠延辛吮冉先娴牧私狻O旅娼ü桓隼永唇步馊绾未唇╳3 Jmail对象,并使用它来创建一个新邮件,设置邮件的标题、内容等并发送该邮件。 

JmailSend.asp 

<%@Language=”VBScript”%> 

<% 

Response.Buffer=True 

‘创建Jmail.Message对象实例oJmail 

Set oJmail=Server.CreateObject(“Jmail.Message”) 

‘启动日志功能 

oJmail.Logging=True 

‘不将错误返回给操作系统 

oJmail.Silent=True 

‘设置邮件发送者的邮件地址 

oJmail.From=”jackywen01@163.com” 

‘设置邮件发送者的姓名 

oJmail.FromName=”小虎” 

‘设置接收邮件人的邮箱地址 

oJmail.AddRecipient “yourfriend@163.com” 

‘设置邮件标题 

oJmail.Subject=”邮件测试系统” 

‘邮件正文 

oJmail.Body=”朋友:”&vbCrLf&vbCrLf&”最近,我使用Jmail开发一个邮件发送系统。” 

‘发送邮件,Mail.myDomain.com假设为SMTP服务器 

oJmail.Send(“Mail.myDomain.com”) 

%> 



接下来我们再来看一个比较简单的邮件接收系统。这个例子的执行过程,首先是从存放邮件的服务器上取出邮件,然后把它同附件一起显示在WEB也面上。 

JmailReceipt.asp 

<% @LANGUAGE=VBSCRIPT %> 
<% 

Set pJmail = Server.CreateObject( "JMail.POP3" ) 
pJmail.Connect "username", "password", "mail.mydomain.com" 
Response.Write( "你有 " & pJmail.count & " 封新邮件<br><br>" ) 
if pJmail.count > 0 then 
Set msg = pJmail.Messages.item(1) 
ReTo = "" 
ReCC = "" 
Set Recipients = msg.Recipients 
separator = ", " 
For i = 0 To Recipients.Count - 1 
If i = Recipients.Count - 1 Then 
separator = "" 
End If 
Set re = Recipients.item(i) 
If re.ReType = 0 Then 
ReTo = ReTo & re.Name & "&nbsp;(" & re.EMail & ")" & separator 
else 
ReCC = ReTo & re.Name & "&nbsp;(" & re.EMail & ")" & separator 
End If 
Next 
Function getAttachments() 
Set Attachments = msg.Attachments 
separator = ", " 
For i = 0 To Attachments.Count - 1 
If i = Attachments.Count - 1 Then 
separator = "" 
End If 
Set at = Attachments(i) 
at.SaveToFile( "c:/fujian/" & at.Name ) 
getAttachments = getAttachments & "<a href=""/fujian/" &_ 
at.Name &""">" & at.Name & "(" & at.Size & " bytes)" &_ 
"</a>" & separator 
Next 
End Function 

%> 
<html> 
<body> 
<TABLE> 
<tr> 
<td>主题</td> 
<td><%= msg.Subject %></td> 
</tr> 
<tr> 
<td>发件人</td> 
<td><%= msg.FromName %></td> 
</tr> 
<tr> 
<td>收件人</td> 
<td><%= ReTO %></td> 
</tr> 
<tr> 
<td>抄送人</td> 
<td><%= ReCC %></td> 
</tr> 
<tr> 
<td>附件</td> 
<td><%= getAttachments %></td> 
</tr> 
<tr> 
<td>正文</td> 
<td><pre><%= msg.Body %></pre></td> 
</tr> 
</TABLE> 
</body> 
</html> 
<% 
end if 
pJmail.Disconnect ‘断开POP3连接 
%> 

至此,一个简单的邮件发送和接收系统就开发完成了。至于有些网友要开发比较复杂的邮件系统,可以结合以上所讲的对象及其属性方法来开发,肯定会开发出功能强大齐全的邮件系统。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值