C# 利用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
 

 1 /// <summary>
 2  /// 利用JMAIl接收邮件
 3  /// </summary>
 4  /// <param name="mailname">油箱用户名称</param>
 5  /// <param name="mailpwd">油箱密码</param>
 6  /// <param name="poptity">等级</param>
 7  /// <param name="senders">发送者</param>
 8  /// <param name="sendmail">发件人地址</param>
 9  /// <param name="subject">主题</param>
10  /// <param name="body">内容</param>
11  /// <param name="path">路径</param>
12  /// <param name="data">数据</param>
13  /// <param name="num1">输出参数</param>

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


 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值