仰天一笑(Ansonxuyu),专业从事软件定制开发、Web软件开发,网站建设,网络推广,APP开发,微博应用开发,微信应用开发,电子商务开发,物联网开发等技术。
互联网8年风雨,愿在此交朋识友,交流心得,分享技术知识(策划/研发/运营/推广/合作)!QQ:943530498


仰天一笑

昨日不悔,今日勿失,明日莫忧! —徐羽

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
海南省商贸信息服务中心 温大文

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()从邮件服务器上读取所有未读邮件。
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的版本信息。

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及其一些常用的对象已有了比较全面的了解。下面将通过一个例子来讲解如何创建w3 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连接
%>

至此,一个简单的邮件发送和接收系统就开发完成了。至于有些网友要开发比较复杂的邮件系统,可以结合以上所讲的对象及其属性方法来开发,肯定会开发出功能强大齐全的邮件系统。
posted on 2006-03-25 12:21  仰天一笑  阅读(1158)  评论(0编辑  收藏  举报