Jmail 介绍 及其 利用Jmail接收邮件 (C#)

 

jmail是一种服务器端的邮件发送组件,和个人用的客户端邮件软件不一样的。jmail是在服务器上给程序用来发邮件用的,除了软件编程人员,其他人一般平常用不上。

jmail是一个第三方邮件操作组件,通常位于web服务器端,和站点程序紧密配合来接收及提交邮件到邮件服务器的控件,让网站用有发送邮件既接收邮件的功能
与此相同的还有CDONTS.NewMail,Persits.MailSender,IISmail.Iismail等等,他们唯一区别就是jmail只需要注册一个dll组件即可被调用,而其他则需要在iis上设置发布smtp服务器
(1)Body(信件正文) : 字符串  
如:JMail.Body = "这里可以是用户填写的表单内容,可以取自From。"  
(2)Charset(字符集,缺省为"US-ASCII") : 字符串  
如:JMail.Charset = "US-ASCII"  
(3)ContentTransferEncoding : 字符串  
指定内容传送时的编码方式,缺省是"Quoted-Printable"  
如:JMail.ContentTransferEncoding = "base64"  
(4)ContentType(信件的contentype. 缺省是"text/plain") : 字符串
如果你以HTML格式发送邮件, 改为"text/html"即可。  
如:JMail.ContentType = "text/html"  
(5)Encoding : 字符串  
设置附件编码方式(缺省是"base64)。 可以选择使用的是"base64", "uuencode" or "quoted-printable"   如:JMail.Encoding = "base64"  
(6)Log(Jmail创建的日志,前提loging属性设置为true,见下面) : 字符串  
如:使用Response.Write( JMail.Log )语句列出日志信息。  
(7)Logging(是否使用日志) : 布尔型  
如:JMail.Logging = true  
(8)Recipients : 字符串  
只读属性,返回所有收件人  
如:Response.Write( "" + JMail.Recipients + "" );  
(9)ReplyTo(指定别的回信地址) : 字符串  
如:JMail.ReplyTo = "[email protected]"  
(10)Sender( 发件人的邮件地址) : 字符串  
如:JMail.Sender = "[email protected]"  
(11)SenderName(发件人的姓名) : 字符串  
如:JMail.SenderName = "一克"  
(12)ServerAddress(邮件服务器的地址) : 字符串  
你可以指定多个服务器,用分号点开。可以指定端口号。  
如果serverAddress保持空白,JMail会尝试远程邮件服务器,然后直接发送到服务器上去。  
如:JMail.ServerAddress = "mail.21cn.net.cn"  
(13)Subject(设定邮件的标题,可以取自From。):字符串  
如:JMail.Subject = "客户反馈表单"  
(14)添加文件附件到邮件  
如:JMail.AddAttachment( "c:anyfile.zip" )  
(15)AddCustomAttachment( FileName, Data )  
添加自定义附件.  
如:JMail.AddCustomAttachment( "anyfile.txt", "Contents of file" );  
(16)AddHeader( Header, Value )  
添加用户定义的信件标头。  
如:JMail.AddHeader( "Originating-IP","192.158.1.10" );  
(17)AddRecipient(收件人):字符串  
如:JMail.AddRecipient( "[email protected]" );  
(18)AddRecipientBCC( Email ),密件收件人:  
如:JMail.AddRecipientBCC( "[email protected]" );  
(19)AddRecipientCC( Email ) ,抄送收件人:  
如:JMail.AddRecipientCC( "" )  
(20)AddURLAttachment( URL, 文档名)  
下载并添加一个来自url的附件. 第二个参数"文档名", 用来指定信件收到后的文件名。  
如:JMail.AddURLAttachment( "http://www.chinabs.net/jmail.zip", "jmail" )  
(21)AppendBodyFromFile( 文件名) ,将文件作为信件正文:  
如:JMail.AppendBodyFromFile( "c:anyfile.txt" )  
(22)AppendText( Text )  
追加信件的正文内容,比如增加问候语或者其它信息。  
如:JMail.AppendText( "欢迎访问本站!" )  
(23)Close() ,强制JMail关闭缓冲的与邮件服务器的连接:  
如:JMail.Close()  
(24)Execute() ,执行邮件的发送  
如:JMail.Execute(

Jmail具有以下特点:
(1)可以发送附件;
(2)详细日志能力,便于你查看问题所在;
(3)设置邮件发送的优先级;
(4)支持多种格式的邮件发送,比如说以HTML或者TXT的方式发送邮件。这是个免费的组件。
(5)密件发送/(CC)抄送/紧急信件发送能力;
(6)最关键的就是--免费的组件,不必发钱,所以非常值得使用。
 

 

 

 

 

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(“

Hello Word

”)
 
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
 

 

 1 /// 
 2  /// 利用JMAIl接收邮件
 3  /// 

 4  /// 油箱用户名称
 5  /// 油箱密码
 6  /// 等级
 7  /// 发送者
 8  /// 发件人地址
 9  /// 主题
10  /// 内容
11  /// 路径
12  /// 数据
13  /// 输出参数

14    public   static   void  ReciveMail( string  mailname, string  mailpwd, ref   string  poptity, ref   string  senders, ref   string  sendmail, ref   string  subject, ref   string  body, ref   string  path, ref   string  data, out   int  num1, string  paths)
15    {
16   num1=1;
17   jmail.POP3Class popMail = new jmail.POP3Class();
18   jmail.Message mailMessage; 
19   jmail.Attachments atts;
20   jmail.Attachment att;
21   string pop="pop."+mailname.Substring(mailname.IndexOf("@")+1);
22   popMail.Connect(mailname,mailpwd,pop,110);
23   if(0<popMail.Count)
24   {
25    for(int i=1;i<=popMail.Count;i++)
26    {
27     mailMessage=popMail.Messages[i];
28     atts=mailMessage.Attachments;
29     mailMessage.Charset = "GB2312";    
30     mailMessage.Encoding = "Base64"
31     mailMessage.ISOEncodeHeaders = false
32     poptity = mailMessage.Priority.ToString();
33     senders = mailMessage.FromName; 
34     sendmail = mailMessage.From; 
35     subject =mailMessage.Subject;
36     body = mailMessage.Body;  
37     data=mailMessage.Date.ToString();
38     string size = mailMessage.Size.ToString(); 
39     for(int j=0;j<atts.Count;j++)
40     {
41      if(j == 0)
42      {
43       //取得附件名称
44       att = atts[j];  
45       /**////附件名称  
46                           
47       string attname = att.Name;  
48//       int k = attname.LastIndexOf(".");
49//       string time = DateTime.Now.ToString();
50//       time = time.Replace("-",""); 
51//       time = time.Replace(" ","");
52//       time = time.Replace(":","");
53//       attname = attname.Insert(attname.LastIndexOf("."),"-"+time);  
54//       /**上传到服务器
55       //path="D://Mail//mailre//"+attname;
56       string all=paths+"//Mail//MailReceive//";
57                             path=all+attname;
58       DirectoryInfo dir=new DirectoryInfo(all);
59       
60       if(dir.Exists)
61       {
62        att.SaveToFile(path);  
63       }

64       else
65       {
66        dir.Create();
67        att.SaveToFile(path);  
68       }

69      }

70      
71       
72     }

73     popMail.DeleteSingleMessage(i);//删除邮件
74    }

75    att = null;
76    atts = null;
77    popMail.Disconnect();        
78    popMail = null;
79   }

80   else
81   {
82   
83    num1=0;
84    att = null;
85    atts = null;
86    popMail.Disconnect();        
87    popMail = null;
88   }

89                    
90   
91  }

92      
93

你可能感兴趣的:(Jmail 介绍 及其 利用Jmail接收邮件 (C#))