欢迎您! | 积分 | 主页 |
注册 | 登陆 |
官方QQ群: 8807551
学教

Jmail接收与发送邮件

发布日:2010-02-08 20:44:07.0 发布人:don 浏览量:299

类别: IT电脑开发

标签: jmail 接收 发送 邮件

点击放大图片-Jmail接收与发送邮件

1、下载Jmail组件,并安装,将jmail.dll引用到工程中:

2、定义一个实体保存接受邮件的基本信息,为了简单起见,只定义了四个字段:

MailInfo
    class MailInfo
    {
       
public string FromMail
        {
            
get;
            
set;
        }

      
public string MailSubject
      {
          
get;
          
set;
      }

      
public string MailMessage
      {
          
get;
          
set;
      }

      
public List<string> atts
      {
          
get;
          
set;
      }
   }

3、邮件发送代码:

代码
 jmail.Message MailObj = new jmail.MessageClass();
            MailObj.From 
= parentform.txtMail.Text;  //发件人的地址
            MailObj.Logging = true;
            MailObj.MailServerUserName 
= parentform.txtMail.Text;   //发件人用户名
            MailObj.MailServerPassWord = parentform.txtPassWord.Text; //服务器验证
            MailObj.HTMLBody = txtMessage.Text;
            MailObj.Charset 
= "gb2312";
            MailObj.Subject 
= txtSubject.Text;
            MailObj.FromName 
= parentform.txtMail.Text;
            MailObj.AddRecipient(parentform.txtMail.Text, 
"User""A");  //添加接收人
            MailObj.Priority = 3;
            
if (txtAtt.Text != "")
            {
                MailObj.AddAttachment(txtAtt.Text, 
false"image/jpg");
            }
            
try
            {
                
bool bool_OK = MailObj.Send(parentform.txtServer.Text, false);
                
if (bool_OK == true)
                    MessageBox.Show(
"发送成功!");
                
if (bool_OK == false)
                    MessageBox.Show(
"发送失败!");
            }
            
catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

4、邮件接收代码:

代码
  ///建立收邮件对象   

            jmail.POP3Class popMail 
= new POP3Class();
            
/**/
            
///建立邮件信息接口   
            jmail.Message mailMessage;

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

            
/**/
            
///建立附件接口   
            jmail.Attachment att;
             
          
             
           
            
try
            {
                popMail.Connect(parentform.txtMail.Text.Trim(), parentform.txtPassWord.Text.Trim(), parentform.txtServer.Text.Trim(), Convert.ToInt32(parentform.txtPoint.Text.Trim()));


                lsvMail.View 
= View.Details;
                
// Allow the user to edit item text.
                lsvMail.LabelEdit = false;
                
// Allow the user to rearrange columns.
                lsvMail.AllowColumnReorder = true;
                
// Select the item and subitems when selection is made.
                lsvMail.FullRowSelect = true;
                
// Display grid lines.
                lsvMail.GridLines = true;
                
// Sort the items in the list in ascending order.
          
            

                
/**/
                
///如果收到邮件   
                if (0 < popMail.Count)
                {
                    
/**/
                    
///根据取到的邮件数量依次取得每封邮件   
                    for (int i = 1; i <= popMail.Count; i++)
                    {
                 

                        
/**/
                        
///取得一条邮件信息   
                        mailMessage = popMail.Messages[i];

                        
/**/
                        
///取得该邮件的附件集合   
                        atts = mailMessage.Attachments;
                   

                        
/**/
                        
///设置邮件的编码方式                             
     


                        mailMessage.Silent 
= true;
                        mailMessage.EnableCharsetTranslation 
= true;
                        mailMessage.ContentTransferEncoding 
= "Base64";
                        mailMessage.Encoding 
= "Base64";
                        mailMessage.Charset 
= "gb2312";
                        mailMessage.ContentType 
= "text/html";
                        mailMessage.ISOEncodeHeaders 
= false



                        
/**/
                        
///是否将信头编码成iso-8859-1字符集                           
                 
                        MailInfo MailInfoObj 
= new MailInfo();
                        MailInfoObj.MailSubject 
= mailMessage.Subject;
                        MailInfoObj.MailMessage 
= mailMessage.HTMLBody;
                        MailInfoObj.FromMail 
= mailMessage.From;
                        MailInfoObj.atts 
= new List<string>();
                        
for (int j = 0; j < atts.Count; j++)
                        {
                            
/**/
                            
///取得附件   
                            att = atts[j];

                            
/**/
                            
///附件名称                                 
                            string atturl= "e:\\" + att.Name;
                            
/**/
                            
///上传到服务器   
                            if (!File.Exists(atturl))
                            {
                                att.SaveToFile(atturl);
                            }
                            MailInfoObj.atts.Add(atturl);

                        }
                        ListViewItem item 
= new ListViewItem();
                        item.Text 
= mailMessage.From;
                        item.Tag 
= MailInfoObj;
                        lsvMail.Items.Add(item);
                    }

        
                }
                
else
                {
                    lbMsg.Text 
= "没有新邮件!";
                }

                
//popMail.DeleteMessages();
                popMail.Disconnect();
                popMail 
= null;
            }
            
catch (Exception ex)
            {
                lbMsg.Text 
= "请检查邮件服务器的设置是否正确!";
            }

5、测试:

1)、在server中填写:smtp.163.com , mail:***@163.com    password:******

2)邮件发送:填写收件人、主题、内容、附件。

3)将server改写成:pop3.163.com , mail:***@163.com    password:******,收取的邮件和附件,如下图:

6、总结:

    这个非常的简单,网上也有很多代码,这里提供一个完整的Demo下载,偶也是整理网上的代码。

    使用网易的邮箱测试的时候,请注意一定要是申请的比较早的。因为自2006年11月16日起,网易免费邮件系统的POP3及SMTP服务将暂停开通,此前已经开通POP3及SMTP服务的邮箱帐号则不受影响,仍然可以正常使用。所以网易邮箱一定是在2006年11月16日之前申请的,其它支持POP3及SMTP服务也可行。

代码:/Files/zhuqil/SendMailAndReceiveMail.rar

可执行程序:/Files/zhuqil/mailexe.rar

作者:朱祁林


验证码:验证码

店名:Don的知识网店
店主:don

©2008 - 沪ICP备07037037号 - 王晓东 - SQL管理 - 邮箱登陆 - RSS阅读