联系我们
cms新闻网站系统、政府cms定制开发

广州网站建设公司-阅速公司

报纸新媒体网站内容发布一体化解决方案联系电话
/
http://www.kize.icu/
广州网站建设公司
您当前位置:首页>ASP.NET MVC

ASP.NET MVC

JMail实现邮件发送的解决方案

发?#38469;?#38388;:2009/4/28 11:59:14  作者:  阅读:1324  

W3 JMail 邮件组件是Dimac公司开发的用来完成邮件的发送、?#37038;鍘⒓用?#21644;集群传输等工作的。w3 Jmail组件是国际最为流行的邮件组件之一,当今世界上绝大部分ASP程序员都在使用w3 Jmail组件构建邮件发送系统,那是因为w3 Jmail组件使用了新的内核?#38469;酰?#20351;其更加可靠和稳定。 一、下面向读者介绍w3 Jmail4.3组件的新特性: 1、 w3 Jmail4.3组件重新设计了其内部结构——使用Message对象代替原来的单一对象Jmail.smtpmail发送邮件; 2、 w3 Jmail4.3组件一共有十多个对象(后面将详细介绍)——这些对象中,绝大多数是针对Jmail.Message对象操作的; 3、 支持从POP3邮件服务器收取邮件; 4、 支持?#29992;?#37038;件的传输; 5、 快速发送,一?#20301;?#35805;就完成邮件发送; 6、 还有一个特性就是可以使用w3 Jmail4.3组件的集群发送功能一次发送成千上万个邮件,还可以通过邮件合并(mailmerge)对象来个性化邮件。 二、Jmail邮件组件的安装及?#23545;兀?1、 安装 跟使用别个组件一样,在使用Jmail邮件组件之前要先安装或注册该组件Jmail.dll。具体注册方法,是先把Jmail.dll文件拷贝?#25509;?#30424;的某一目录下(如C:\Jmail\Jmail.dll),然后执行命令Regsvr32 C:\Jmail\Jmail.dll即可。 2、 ?#23545;??#23545;?#32452;件是安装组件的相反动作,可以使用参数/U来?#23545;?#24050;安装的组件,执行命令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() 清除集?#29616;?#30340;所有内容,并不会删除邮件服务器上的任何邮件。
Count():Integer 返回集?#29616;?#35760;录的数目: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给邮件?#29992;堋?/td>
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() 清除所有收件?#35828;?#22336;列表。
Close() ?#22836;臞mail与邮件服务器连接而使用的缓存(Cache)。
DecodeHeader(Header):String 输出一个邮件头消息。
ExtractEmailAddressesFromURL(bstrURL,bstrAuth) 从指定的网制(URL)读取并添加邮件列表。
GetMessageBodyFromURL(同上) 删除邮件正文并用指定的URL的内容代替。
KeyInformation(keyIdentifier):pointer 返回一个PGPKey对象。
LoadFromStream(Stream) ?#37038;?#25454;库流读取数据,该数据库流必须符合RFC822标准。
LogCustomMessage(Message) 给Jmail日志文件添加自定义日志。此函数只有在logging属?#21592;?#35774;置为True时?#34892;А?/td>
Nq() 将邮件追加到发送队列等待发送。
ParseMessage(MessageSource) 解析一个邮件,数据流必须符合RFC822格式标准。
SaveToStream(Stream) 保存邮件到数据流,数据流必须符合RFC822格式标准。
Send(MailServer,enque):Boolean 发送邮件。邮件服务器是一个描述邮件服务器名称或地址的字符串,用户名和密码是可选项。当要发送?#29616;?#37038;件时使用格式为:用户名:密码@邮件服务器
SendToNewsGroup(ServerName,NewsGroup) 使用指定的NNTP服务器发送邮件到新闻组,多个邮件用“,”隔开。
About():string 设置一些附加信息。
Attachments():Pointer 返回邮件的附件集合。Set Attachments=Message.Attachments
Body():String 返回邮件正文。Response.Write (Message.Body)
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时,所有的附件都被?#29992;埽?#24403;然是编译器可用的情况下。其默?#29616;?#20026;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发信?#29616;?#26102;,该函数设置登录密码。
MailServerUserName():String 当邮件服务器使用SMTP发信?#29616;?#26102;,该函数设置登录帐号。
MimeVersion():String 声明Mime版本,默认为1.0。
MsPickupdirectory():String 指定MS SMTP服务的Pickup文件夹的位置。
PGPEncrypt():Boolean 当邮件是使用PGP发送时并该属?#21592;?#35774;置为True时,该邮件将被自动?#29992;堋?/td>
PGPSign():Boolean 当邮件是使用PGP发送时并该属?#21592;?#35774;置为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) 追加一个收件人到集?#29616;小?/td>
Clear() 清除集?#29616;?#30340;全部记录。
Count():Integer 返回集?#29616;?#25910;件人的总数。
Item(Index):Pointer 返回集?#29616;?#30340;一个指定的收件人。

6、 Recipient对象

属性(或方法)

描述

New(Name,Email,recipientType):Pointer 创建一个可以添加到收件人集?#29616;蠷ecipients的收件人。
Email():String 返回收件人的邮件。
Name():String 返回收件人的姓名。
ReType():Integer 返回收件人模式(收件人To=0,抄送CC=1,暗送BCC=2)。

7、 Attachments对象

属性(或方法)

描述

Add(Attachment) 添加一个附件到集合。
Clear() 清除集?#29616;?#30340;全部附件。
Count():Integer 返回集?#29616;?#38468;件的总数。
Item(Index):Pointer 返回集?#29616;?#25351;定的附件

8、 Attachment对象

属性(或方法)

描述

New(FileName,ContentType,Data):Pointer 创建一个可以加入到Attachments集合的附件。如果指定Data的值,那么Jmail将创建一个以Data参数为内容的自定义附件。
SaveToFile(FileName) 保存附件?#25509;?#30424;。
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)设置为测?#38405;?#24335;。
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及其一些常用的对象已有了比?#20808;?#38754;的了解。下面将通过一个例子来讲解如?#26410;?#24314;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=”[email protected]” ‘设置邮件发送者的姓名 oJmail.FromName=”小虎” ‘设?#23186;邮?#37038;件人的邮箱地址 oJmail.AddRecipient “[email protected]” ‘设置邮件标题 oJmail.Subject=”邮件测试系统” ‘邮件正文 oJmail.Body=”朋友:”&vbCrLf&vbCrLf&”最近,我使用Jmail开发一个邮件发送系统。” ‘发送邮件,Mail.myDomain.com假设为SMTP服务器 oJmail.Send(“Mail.myDomain.com”) %> 接下来我们再来看一个比较简单的邮件?#37038;?#31995;统。这个例子的执行过程,首先是从存放邮件的服务器上取出邮件,然后把它同附件一起显示在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连接
%>

至此,一个简单的邮件发送和?#37038;?#31995;统就开发完成了。至于?#34892;?#32593;友要开发比?#32454;?#26434;的邮件系统,可以结合以上所讲的对象及其属性方法来开发,肯定会开发出功能强大齐全的邮件系统。

相关文章
jmail
cms新闻系统购买咨询
扫描关注 广州阅速软件科?#21152;?#38480;公司
扫描关注 广州阅速科技
莱万特s
棋牌刷流水骗局 十二选五开浙江结果 上海时时彩开奖结果最新 阿拉德之怒mg游戏 时时彩网页计划人工版 极速赛走势技巧 天津快乐十分一定牛开奖结果快 内蒙古福彩时时彩玩法介绍 破解8键老式水果机压分打法 福彩幸运武林 河南快3走势图今 吉林时时走势图结果查询 一肖推算公式 新疆时时三星组选和直 足球即时指数球探网 王者荣耀全彩色污慢不遮挡