zoukankan      html  css  js  c++  java
  • C# 利用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!请检查邮件服务器的设置是否正确!");
         }
    }

  • 相关阅读:
    互联网中的公钥与私钥
    Apache的order、allow、deny
    Linux进程中TIME_OUT解析
    no xxx find in java.library.path
    检测 USB 设备拨插的 C# 类库:USBClassLibrary
    C# 实现的异步 Socket 服务器
    javascript制作公式编辑器,函数编辑器和图形绘制
    浏览器内部工作原理
    10 款基于 jQuery 的切换效果插件推荐
    DIV焦点事件详解 --【focus和tabIndex】​
  • 原文地址:https://www.cnblogs.com/caigen029/p/3745167.html
Copyright © 2011-2022 走看看