一步一步教你使用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下载,偶也是整理网上的代码。

    使用网易的邮箱测试的时候,请注意开启POP3/SMTP服务(网易自2006年11月16日起,网易免费邮件系统的POP3及SMTP服务将暂停开通,但是2010-01-05 20点40分开始,网易免费邮箱重新免费开放POP3/SMTP服务,感谢缤纷),设置如下图:

 

代码:/Files/zhuqil/SendMailAndReceiveMail.rar

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

 



(全文完)


以下为广告部分

您部署的HTTPS网站安全吗?

如果您想看下您的网站HTTPS部署的是否安全,花1分钟时间来 myssl.com 检测以下吧。让您的HTTPS网站变得更安全!

SSL检测评估

快速了解HTTPS网站安全情况。

安全评级(A+、A、A-...)、行业合规检测、证书信息查看、证书链信息以及补完、服务器套件信息、证书兼容性检测等。

SSL证书工具

安装部署SSL证书变得更方便。

SSL证书内容查看、SSL证书格式转换、CSR在线生成、SSL私钥加解密、CAA检测等。

SSL漏洞检测

让服务器远离SSL证书漏洞侵扰

TLS ROBOT漏洞检测、心血漏洞检测、FREAK Attack漏洞检测、SSL Poodle漏洞检测、CCS注入漏洞检测。

转载于:https://www.cnblogs.com/zhuqil/archive/2010/02/08/SendMailAndReceiveMail.html

/这个是一个成功的声明 FUNCTION int fsendemail(ref String sSmtpServer, ref String sSenderId, & ref String sPsw, ref String sSenderName, ref String sRcvAddr,& ref String sSenderAddr,ref String sCCAddr, & ref String sBCCAddr, ref String sSubject, & ref String sContent, ref String sAttach) Library "PSdEmail_dll.dll" 代码如下 //mail_url放邮件地址,as_mailtext放邮件内容,mail_cc是邮件的抄送地址 //as_subject是邮件主题,as_filename是附件的文件名,as_pathname是附件的完整路径名 string ls_name mailsession lms_data mailmessage lmms_message mailreturncode lmr_value integer li_i //产生邮件会话对象mses lms_data = create mailsession //邮件登录 lmr_value = lms_data.maillogon(mailnewsession!) if lmr_value mailreturnsuccess! then gnv_base.of_message("真不幸,邮件注册失败") return -1 end if //标题 lmms_message.subject = sle_subject.text //正文 lmms_message.notetext = trim(mle_content.text) + ' ' ////附件 //if as_pathname '' or as_filename '' then // mmsg.attachmentfile[1].pathname=as_pathname // mmsg.attachmentfile[1].filename=as_filename //end if //******************************校验收件人邮件地址是否是合法地址***************************// //原收件人 ls_name = sle_rcv.text lmr_value = lms_data.mailResolveRecipient(ls_name) if lmr_value = mailReturnSuccess! THEN lmms_message.Recipient[1].RecipientType = mailto! lmms_message.Recipient[1].address = "liuzhp@huadong.net" lmms_message.Recipient[1].name = "liuzhp@huadong.net" elseif lmr_value = mailReturnFailure! THEN gnv_base.of_message('收件人地址错误,请检查') return -1 else gnv_base.of_message('收件人地址错误,请检查') return -1 end if //发送邮件 lmr_value = lms_data.mailsend(lmms_message) if lmr_value mailreturnsuccess! then messagebox("邮件发送","邮件发送失败!"+char(10)+char(13)+'请检查:'+char(10)+char(13)+& '1.附件路径和名称是否正确.'+char(10)+char(13)+& '2.本地outlook配置是否正确.'+char(10)+char(13)+& '3.如以上都正确,请与系统管理员联系!') return -1 elseif lmr_value = mailreturnsuccess! then // messagebox("邮件发送","邮件发送完毕!") end if lms_data.maillogoff() //退出登录 destroy lms_data //取消邮件会话 return 1 String ls_RcvAddr //收件人 String ls_CcAddr //转发 String ls_BccAddr //暗送 String ls_Sub //主题 String ls_Content //内容 String ls_Attach = ''//附件,多个附件由ATTACHSPLIT分隔 Constant String ATTACHSPLIT = '|' //附件的分隔符号 Integer li_Rtn //返回值,0:发送成功,1:发送失败 pointer oldpointer // Declares a pointer variable oldpointer = SetPointer(HourGlass!) ls_RcvAddr = sle_Rcv.Text //收件人 ls_CcAddr = sle_CC.Text //转发 ls_BccAddr = sle_BCC.Text //暗送 ls_Sub = sle_Subject.Text //主题 ls_Content = mle_Content.Text //内容 Long ll_Row, ll_RowCnt //把附件用ATTACHSPLIT连接起来 ll_RowCnt = dw_Attach.RowCount() FOR ll_Row = 1 TO ll_RowCnt ls_Attach = ls_Attach + dw_Attach.Object.FilePath[ll_Row] +& dw_Attach.Object.FileName[ll_Row] + ATTACHSPLIT NEXT //发送 li_Rtn = fSendEmail(is_Server, is_SenderId , is_Psw, is_SenderName, is_SenderAddr,ls_RcvAddr, ls_CcAddr, ls_BccAddr, ls_Sub, ls_Content,ls_Attach) if li_rtn = 0 then gnv_base.of_message('邮件发送成功!') else gnv_base.of_message('邮件发送失败!') end if SetPointer(oldpointer) li_Rtn = fSendEmail(is_Server, is_SenderId , is_Psw, is_SenderName, is_SenderAddr, & ls_RcvAddr, ls_CcAddr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值