ASP.NET使用Jmail组件发送邮件

2010-08-28 10:51:18来源:西部e网作者:

配置环境:.Net Framework 1.1,Imai8.02,w3Jmail4.3

实现过程:

不同于在Asp中使用Jmail,直接使用 Server.CreateObject("Jmail.Message")就可以了。在.Net环境中,需要进行设置。

1.安装jmail4.3

2.找到jmail.dll(Program Files\Dimac\w3JMail4下)

3.执行Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin\ildasm.exe(可使用Visual Studio .Net 2003 命令提示),

格式如下:tlbimp c:\Program Files\Dimac\w3JMail4\jmail.dll /out:myJmail.dll /namespace:myJmail

生成myJmail.dll后,copy到web的根目录的bin目录。在ASP.Net页面中,用这个方法引用:

使用Jmail发送邮件很简单,下面是相关代码:

using jmail;

  private void Page_Load(object sender, System.EventArgs e)  //不一定是Load事件
  {

   jmail.Message jmessage=new jmail.MessageClass();
   jmessage.Charset="GB2312";

   jmessage.From="help@gmail.com";   //发信地址
   jmessage.FromName= GMail同志" ;   //发信人

   jmessage.ReplyTo="help@gmail.com";   //回复地址

   jmessage.Subject="这里是标题";  //邮件标题
   jmessage.AddRecipient("master@gmail.com","","");  //为收信人地址,后面两个参数可为空!

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

   jmessage.Body= "这是邮件内容" ;  //信件内容

   jmessage.MailServerUserName= "****" ;   //为发信邮箱登陆的用户名
   jmessage.MailServerPassWord= "*****" ;   //为发信邮箱登陆的密码

   jmessage.Send("10.0.***.**",false);  //IP为邮件服务器
   Response.Write ("email sent successfully!");
   jmessage.Close() ;

  }

 


详细介绍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)


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
 返回集合中指定的附件。

 

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

关键词:ASP.NET

赞助商链接: