C# 利用Jmail接收邮件[转]

摘要:
AddCustomAttachment:String向消息添加自定义类型附件。AddNativeHeader向消息添加消息头。RecipientName和PGPKey是可选的,RecipientName是收件人的名称,PGPKey对消息进行加密。AddRecipientBCC添加邮件发件人地址。AddURLAttachment:String从指定的URL下载文件并将其作为邮件附件添加。Clear()清除所有邮件消息并成为空对象。Close()释放Jmail用于连接到邮件服务器的缓存。LogCustomMessage将自定义日志添加到Jmail日志文件中。

1、   w3 Jmail4.3组件重新设计了其内部结构——使用Message对象代替原来的单一对象Jmail.smtpmail发送邮件;

2、   w3 Jmail4.3组件一共有十多个对象(后面将详细介绍)——这些对象中,绝大多数是针对Jmail.Message对象操作的;

3、   支持从POP3邮件服务器收取邮件;

4、   支持加密邮件的传输;

5、   快速发送,一次会话就完成邮件发送;

6、   还有一个特性就是可以使用w3 Jmail4.3组件的集群发送功能一次发送成千上万个邮件,还可以通过邮件合并(mailmerge)对象来个性化邮件。

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

/**//// <summary>
/// 利用Jmail接收邮件
/// </summary>
private void ReciveByJmail()
{    
    /**////建立收邮件对象
     jmail.POP3Class popMail = new POP3Class();
    
    /**////建立邮件信息接口
     jmail.Message mailMessage; 

    /**////建立附件集接口
     jmail.Attachments atts;

    /**////建立附件接口
     jmail.Attachment att;

    try
     {
         popMail.Connect(TxtPopUser.Text.Trim(),TxtPopPwd.Text.Trim(),TxtPopServer.Text.Trim(),Convert.ToInt32(TxtPopPort.Text.Trim()));
        
        /**////如果收到邮件
        if(0 < popMail.Count)                                                                          
         {    
            /**////根据取到的邮件数量依次取得每封邮件
            for(int i=1;i <= popMail.Count;i++)                                                       
             {
                /**////取得一条邮件信息
                 mailMessage = popMail.Messages[i];                                                        

                /**////取得该邮件的附件集合
                 atts = mailMessage.Attachments; 
                
                /**////设置邮件的编码方式                          
                 mailMessage.Charset = "GB2312"; 
                
                /**////设置邮件的附件编码方式                         
                mailMessage.Encoding = "Base64"; 
                
                /**////是否将信头编码成iso-8859-1字符集                        
                mailMessage.ISOEncodeHeaders = false; 
                
               /**////邮件的优先级                     
                 txtpriority.Text = mailMessage.Priority.ToString(); 
                
                /**////邮件的发送人的信箱地址                      
                 txtSendMail.Text = mailMessage.From; 
                
                /**////邮件的发送人                     
                 txtSender.Text = mailMessage.FromName; 
                
               /**////邮件主题                   
                txtSubject.Text = mailMessage.Subject; 
                
                /**////邮件内容                   
                 txtBody.Text = mailMessage.Body; 
                
                /**////邮件大小                        
                 txtSize.Text = mailMessage.Size.ToString();                                                          
                
                for(int j=0;j<atts.Count;j++)
                 {
                    /**////取得附件
                     att = atts[j];  
                    
                   /**////附件名称                              
                   string attname = att.Name;                                                            
                    
                    /**////上传到服务器
                     att.SaveToFile ("e:\attFile\"+attname);                                           
                    
                 }
                
             }
             panMailInfo.Visible = true;
             att = null;
             atts = null;
         }
        else
         {
             Response.Write("没有新邮件!");
         }

         popMail.DeleteMessages();
         popMail.Disconnect();
         popMail = null;
     }
    catch
     {
        Response.Write("Warning!请检查邮件服务器的设置是否正确!");
     }
}

免责声明:文章转载自《C# 利用Jmail接收邮件[转]》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AndroidManifest.xml的targetSdkVersion 与 project.properties中targetps cc 2018安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows下bat脚本自动发邮件

摘要:说明:很多木马会利用自身的程序截取系统敏感文件或信息发往指定的邮箱,而blat并不是木马,它小巧却有强大的发邮件功能,可不要用它做违法事,感觉和木马功能有一拼!下面先看个具体的实例(在blat同目录创建个批处理): @echooff ::::::::::::::参数设置:...说明:很多木马会利用自身的程序截取系统敏感文件或信息发往指定的邮箱,而bl...

使用 Mutt Email 客户端管理你的 Gmail

原文:http://www.guao.hk/posts/httplifehacker-com5574557how-to-use-the-fast-and-powerful-mutt-email-client-with-gmail.html 你是终端爱好者+键盘控吗?如果可以在上图这种界面中使用 Gmail,你会不会兴奋异常呢? 上图即是 mutt 这款基...

各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况

网络产品推广和新闻消息推送时,经常用到的工具就是用客户邮箱发送邮件了,如果是要发送的邮件量非常大的话,一般的建议是搭建自己的邮局服务器,或者是花钱购买专业的邮件群发服务,免费邮箱的SMTP适合少量的邮件群发需求。 例如Wordpress的评论邮件通知功能,每天要发送的邮件数量最多可能是几百封,如果用PHP自带的Mail()函数发送,容易被各大邮箱判定为垃圾...

Outlook无法更改邮件内容字体颜色详解

过去两年用一直Notes,最近开始改用Outlook2007,发现新邮件无法更改字体的颜色和格式,有些想强调的语句没有办法凸显,相信有些同学也遇到和我一样的问题。在这里把outlook邮件内容格式详细的说一下。 解决办法很简单:在Outlook -> Options -> 里面选中“HTML”。我们可以看到Outlook支持3类邮件内容格式:1...

jenkins邮件-使用变量定制化html邮件报告

jenkins当中邮件插件: Email Extension Plugin jenkins基本使用和邮件配置请参考测试派文章:http://testingpai.com/article/1609225132204 本文着重来讲解: 1)在邮件正文当中,引用邮件插件提供的变量 2)自定义邮件正文的html模板。 最终要达到的效果为: 第一步:查看Email...

【】如何删除outlook正在发送的邮件

主要有以下三种情况: 1. 因为发送的邮件的容量过大,超过最大附件的标准,发不出去,但是却一直在不停的发, 2. 邮件内容错误,或收件人错误,想取消发送的邮件. 3. 因为网络的问题,或电脑的问题,邮件一直的在发送. 如果邮件正在发送,当然删除不了! 所以要先取消正在发送的邮件,在右下角状态栏点正在发送的邮件,点右键,选择"取消正在发送或接收邮件"....