如何使用JMAIL组件实现邮件的发送与接收

如何使用JMAIL组件实现邮件的发送与接收

      运行该示例需要注意的地方:
      1.jmail.dll组件需要在运行该程序的机器上进行注册,可通过如下方式注册:
          进入Dos模式,输入"regsvr32 jmail.dll组件所在路径",然后回车,即可在机器上完成jmail.dll组件的注册。
      2.如果您的机器上装有瑞星等杀毒软件,请关闭其“邮件发送监控,及邮件接受监控”功能。
      3.正确设置邮件服务器。
         
      发送

      <%@ Page language="c#" Codebehind="JmailSend.aspx.cs"
      AutoEventWireup="false" Inherits="CommonFunction.NewMail" %>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
      <HTML>
          <HEAD>
              <title>NewMail</title>
              <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
              <meta name="CODE_LANGUAGE" Content="C#">
              <meta name="vs_defaultClientScript" content="JavaScript">
              <meta name="vs_targetSchema"
      content="http://schemas.microsoft.com/intellisense/ie5">
          </HEAD>
          <body MS_POSITIONING="GridLayout">
              <form id="NewMail" method="post" runat="server"
      enctype="multipart/form-data">
                  <TABLE id="Table1" style="Z-INDEX: 101; LEFT: 88px; WIDTH:
      421px; POSITION: absolute; TOP: 24px; HEIGHT: 79px"
                      cellSpacing="1" cellPadding="1" width="421" border="1">
                      <TR>
                          <TD><FONT face="宋体">SMTP邮件服务器</FONT></TD>
                          <TD>
                              <asp:TextBox id="TxtSmtServer" runat="server"
      Width="195px" Height="26px">mail.netandtv.com</asp:TextBox>
                              <asp:RequiredFieldValidator
      id="RequiredFieldValidator1" runat="server" ErrorMessage="请输入SMTP邮件服务器地址!"
      ControlToValidate="TxtSmtServer">*</asp:RequiredFieldValidator></TD>
                      </TR>
                      <TR>
                          <TD><FONT face="宋体">SMTP邮件用户</FONT></TD>
                          <TD>
                              <asp:TextBox id="TxtSmtpUser" runat="server"
      Width="195px" Height="26px">songxd@netandtv.com</asp:TextBox>
                              <asp:RequiredFieldValidator
      id="RequiredFieldValidator2" runat="server" ErrorMessage="请输入SMTP邮件用户!"
      ControlToValidate="TxtSmtpUser">*</asp:RequiredFieldValidator></TD>
                      </TR>
                      <TR>
                          <TD>SMTP邮件密码</TD>
                          <TD>
                              <asp:TextBox id="TxtSmtpPwd" runat="server"
      Width="195px" Height="26px">sxd999</asp:TextBox>
                              <asp:RequiredFieldValidator
      id="RequiredFieldValidator3" runat="server" ErrorMessage="请输入SMTP邮件密码"
      ControlToValidate="TxtSmtpPwd">*</asp:RequiredFieldValidator></TD>
                      </TR>
                      <TR>
                          <TD>SMTP邮件服务器端口</TD>
                          <TD><FONT face="宋体">
                                  <asp:TextBox id="TxtSmtpPort" runat="server"
      Width="195px" Height="26px">25</asp:TextBox>
                                  <asp:RequiredFieldValidator
      id="RequiredFieldValidator4" runat="server" ErrorMessage="请输入SMTP邮件服务器端口"
      ControlToValidate="TxtSmtpPort">*</asp:RequiredFieldValidator></FONT></TD>
                      </TR>
                      <TR>
                          <TD>邮件地址</TD>
                          <TD>
                              <asp:TextBox id="TxtEmail" runat="server"
      Width="195px" Height="26px">songxd@netandtv.com</asp:TextBox>
                              <asp:RequiredFieldValidator
      id="RequiredFieldValidator9" runat="server" ErrorMessage="请输入邮件地址"
      ControlToValidate="TxtEmail">*</asp:RequiredFieldValidator>
                              <asp:RegularExpressionValidator
      id="RegularExpressionValidator1" runat="server"
      ErrorMessage="RegularExpressionValidator"
                                  ControlToValidate="TxtEmail"
      ValidationExpression="/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*">*</asp:RegularExpressionValidator></TD>
                      </TR>
                      <TR>
                          <TD>您的名字</TD>
                          <TD><FONT face="宋体">
                                  <asp:TextBox id="TxtName" runat="server"
      Width="195" Height="26">songxd</asp:TextBox>
                                  <asp:RequiredFieldValidator
      id="RequiredFieldValidator10" runat="server" ErrorMessage="请输入您的名字!"
      ControlToValidate="TxtName">*</asp:RequiredFieldValidator></FONT></TD>
                      </TR>
                      <TR>
                          <TD><FONT face="宋体">邮件主题</FONT></TD>
                          <TD>
                              <asp:TextBox id="txtSubject" runat="server"
      Width="193px">songsongsongsogn</asp:TextBox></TD>
                      </TR>
                      <TR>
                          <TD><FONT face="宋体">邮件内容</FONT></TD>
                          <TD><FONT face="宋体">
                                  <asp:TextBox id="txtContent" runat="server"
      Width="194px">songsongsongsogn</asp:TextBox></FONT></TD>
                      </TR>
                      <TR>
                          <TD><FONT face="宋体">附件</FONT></TD>
                          <TD><FONT face="宋体"> <INPUT id="upFile" type="file"
      name="File1" runat="server"></FONT></TD>
                      </TR>
                      <TR>
                          <TD><FONT face="宋体">收件人</FONT></TD>
                          <TD>
                              <asp:TextBox id="txtReciver"
      runat="server"></asp:TextBox></TD>
                      </TR>
                      <TR>
                          <TD colSpan="2" align="center"><FONT face="宋体">
                                  <asp:Button id="btnSend" runat="server"
      Text="发送测试邮件"></asp:Button></FONT></TD>
                      </TR>
                      <TR>
                          <TD align="center" colSpan="2">
                              <asp:ValidationSummary id="ValidationSummary1"
      runat="server" Width="269px" Height="13px"></asp:ValidationSummary></TD>
                      </TR>
                  </TABLE>
              </form>
          </body>
      </HTML>

 

      using System;
      using System.Collections;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Web;
      using System.Web.SessionState;
      using System.Web.UI;
      using System.Web.UI.WebControls;
      using System.Web.UI.HtmlControls;
      using jmail;
      namespace CommonFunction
      {
          /// <summary>
          /// NewMail 的摘要说明。
          /// </summary>
          public class NewMail : System.Web.UI.Page
          {
              protected System.Web.UI.WebControls.TextBox TxtSmtServer;
              protected System.Web.UI.WebControls.TextBox TxtSmtpUser;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator1;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator2;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator3;
              protected System.Web.UI.WebControls.TextBox TxtSmtpPwd;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator4;
              protected System.Web.UI.WebControls.TextBox TxtSmtpPort;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator9;
              protected System.Web.UI.WebControls.TextBox TxtEmail;
              protected System.Web.UI.WebControls.RegularExpressionValidator
      RegularExpressionValidator1;
              protected System.Web.UI.WebControls.TextBox TxtName;
              protected System.Web.UI.WebControls.TextBox txtContent;
              protected System.Web.UI.WebControls.TextBox txtSubject;
              protected System.Web.UI.HtmlControls.HtmlInputFile upFile;
              protected System.Web.UI.WebControls.RadioButtonList radioCheck;
              protected System.Web.UI.WebControls.ValidationSummary
      ValidationSummary1;
              protected System.Web.UI.WebControls.Button btnSend;
              protected System.Web.UI.WebControls.TextBox txtReciver;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator10;
         
              private void Page_Load(object sender, System.EventArgs e)
              {
                  // 在此处放置用户代码以初始化页面
              }

              #region Web Form Designer generated code
              override protected void OnInit(EventArgs e)
              {
                  //
                  // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
                  //
                  InitializeComponent();
                  base.OnInit(e);
              }
             
              /// <summary>
              /// 设计器支持所需的方法 - 不要使用代码编辑器修改
              /// 此方法的内容。
              /// </summary>
              private void InitializeComponent()
              {   
                  this.btnSend.Click += new
      System.EventHandler(this.btnSend_Click);
                  this.Load += new System.EventHandler(this.Page_Load);

              }
              #endregion

              private void btnSend_Click(object sender, System.EventArgs e)
              {
                  jmail.MessageClass oJmailMessage = new
      jmail.MessageClass();//建立发邮件类

                  oJmailMessage.Charset = "GB2312";// 字符集
                  oJmailMessage.Encoding = "BASE64";//附件的编码格式
                  oJmailMessage.ContentType = "text/html";
                  oJmailMessage.ISOEncodeHeaders = false;//是否将信头编码成iso-8859-1字符集
                  oJmailMessage.Priority = Convert.ToByte(1);// 优先级
             
                  oJmailMessage.From = TxtEmail.Text.Trim();//发送人邮件地址
                  oJmailMessage.FromName    = TxtName.Text.Trim();//发送人姓名
                  oJmailMessage.Subject    = txtSubject.Text.Trim();// 邮件主题
                  oJmailMessage.MailServerUserName =
      TxtSmtpUser.Text.Trim();//身份验证的用户名
                  oJmailMessage.MailServerPassWord =
      TxtSmtpPwd.Text.Trim();//用户密码

                 
      //添加一个收件人,抄送人和密送人的添加和该方法是一样的,只是分别使用AddRecipientCC和RecipientBCC两个属性
                  //要是需要添加多个收件人,则重复下面的语句即可。添加多个抄送和密送人的方法一样
                  oJmailMessage.AddRecipient(txtReciver.Text.Trim(),"","");
                  if("" != upFile.PostedFile.FileName)
                  {
                      string attpath = upFile.PostedFile.FileName;
                     
      oJmailMessage.AddAttachment(@attpath,true,attpath.Substring(attpath.LastIndexOf(".")+1,3));//添加附件
                  }
                  oJmailMessage.Body = txtContent.Text.Trim();//邮件内容

                  if(oJmailMessage.Send(TxtSmtServer.Text.Trim(),false))
                  {
                      Response.Write("发送成功!");
                  }
                  else
                  {
                      Response.Write("发送失败,请检查邮件服务器的设置!");
                  }

                  oJmailMessage = null;
              }

             
          }
      }


      接收

      <%@ Page language="c#" Codebehind="JmailRecive.aspx.cs"
      AutoEventWireup="false" Inherits="CommonFunction.JmailConfig" %>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
      <HTML>
          <HEAD>
              <title>JmailConfig</title>
              <meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
              <meta content="C#" name="CODE_LANGUAGE">
              <meta content="JavaScript" name="vs_defaultClientScript">
              <meta content="http://schemas.microsoft.com/intellisense/ie5"
      name="vs_targetSchema">
          </HEAD>
          <body MS_POSITIONING="GridLayout">
              <form id="JmailConfig" method="post" runat="server">
                  <TABLE id="Table1" style="Z-INDEX: 101; LEFT: 288px; POSITION:
      absolute; TOP: 16px">
                      <TR>
                          <TD><FONT face="宋体"></FONT><FONT
      face="宋体"></FONT><FONT face="宋体"></FONT><FONT face="宋体"></FONT><BR>
                              <STRONG>邮件服务器设置</STRONG></TD>
                      </TR>
                      <TR>
                          <TD style="WIDTH: 165px">POP3邮件服务器</TD>
                          <TD><asp:textbox id="TxtPopServer" runat="server"
      Height="26px" Width="195px"></asp:textbox><asp:requiredfieldvalidator
      id="RequiredFieldValidator5" runat="server"
      ControlToValidate="TxtPopServer"
      ErrorMessage="请输入POP3邮件服务器地址!">*</asp:requiredfieldvalidator></TD>
                      </TR>
                      <TR>
                          <TD style="WIDTH: 165px">POP3邮件用户名</TD>
                          <TD><asp:textbox id="TxtPopUser" runat="server"
      Height="26px" Width="195px"></asp:textbox><asp:requiredfieldvalidator
      id="RequiredFieldValidator6" runat="server" ControlToValidate="TxtPopUser"
      ErrorMessage="请输入POP3邮件用户">*</asp:requiredfieldvalidator></TD>
                      </TR>
                      <TR>
                          <TD style="WIDTH: 165px">POP3邮件密码</TD>
                          <TD><asp:textbox id="TxtPopPwd" runat="server"
      Height="26px" Width="195px"
      TextMode="Password"></asp:textbox><asp:requiredfieldvalidator
      id="RequiredFieldValidator7" runat="server" ControlToValidate="TxtPopPwd"
      ErrorMessage="请输入POP3邮件密码!">*</asp:requiredfieldvalidator></TD>
                      </TR>
                      <TR>
                          <TD style="WIDTH: 165px">POP3邮件服务器端口</TD>
                          <TD><asp:textbox id="TxtPopPort" runat="server"
      Height="26px" Width="195px"></asp:textbox><asp:requiredfieldvalidator
      id="RequiredFieldValidator8" runat="server" ControlToValidate="TxtPopPort"
      ErrorMessage="请输入POP3邮件服务器端口!">*</asp:requiredfieldvalidator></TD>
                      </TR>
                      <TR>
                          <TD style="HEIGHT: 27px" colSpan="2">
                              <P align="center"><asp:button id="BtnTake"
      runat="server" Width="79px" Text="收取邮件"></asp:button></P>
                          </TD>
                      </TR>
                      <TR>
                          <TD align="center" colSpan="2">
                              <asp:validationsummary id="ValidationSummary1"
      runat="server" Width="269px" Height="13px"></asp:validationsummary></TD>
                      </TR>
                      <TR>
                          <TD align="center" colSpan="2"><asp:panel
      id="panMailInfo" runat="server" Width="100%" Visible="False"><FONT
      face="宋体">
                                      <TABLE id="Table2" cellSpacing="1"
      cellPadding="1" width="100%" border="1">
                                          <TR>
                                              <TD>发件人</TD>
                                              <TD>
                                                  <asp:TextBox id="txtSender"
      runat="server" Width="234px"></asp:TextBox></TD>
                                          </TR>
                                          <TR>
                                              <TD>发件人邮箱地址</TD>
                                              <TD>
                                                  <asp:TextBox id="txtSendMail"
      runat="server" Width="233px"></asp:TextBox></TD>
                                          </TR>
                                          <TR>
                                              <TD>邮件主题</TD>
                                              <TD>
                                                  <asp:TextBox id="txtSubject"
      runat="server" Width="235px"></asp:TextBox></TD>
                                          </TR>
                                          <TR>
                                              <TD>优先级</TD>
                                              <TD>
                                                  <asp:TextBox id="txtpriority"
      runat="server"></asp:TextBox></TD>
                                          </TR>
                                          <TR>
                                              <TD>邮件大小</TD>
                                              <TD>
                                                  <asp:TextBox id="txtSize"
      runat="server"></asp:TextBox></TD>
                                          </TR>
                                          <TR>
                                              <TD>附件路径</TD>
                                              <TD>
                                                  <asp:TextBox id="txtAttPath"
      runat="server"></asp:TextBox></TD>
                                          </TR>
                                          <TR>
                                              <TD vAlign="top">邮件内容</TD>
                                              <TD>
                                                  <asp:TextBox id="txtBody"
      runat="server" Width="236px" Height="90px"
      TextMode="MultiLine"></asp:TextBox></TD>
                                          </TR>
                                      </TABLE>
                                  </FONT>
                              </asp:panel></TD>
                      </TR>
                  </TABLE>
              </form>
          </body>
      </HTML>


      using System;
      using System.Collections;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Web;
      using System.Web.SessionState;
      using System.Web.UI;
      using System.Web.UI.WebControls;
      using System.Web.UI.HtmlControls;
      using jmail;
      namespace CommonFunction
      {
          /// <summary>
          /// JmailConfig 的摘要说明。
          /// </summary>
          public class JmailConfig : System.Web.UI.Page
          {
              protected System.Web.UI.WebControls.TextBox TxtPopServer;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator5;
              protected System.Web.UI.WebControls.TextBox TxtPopUser;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator6;
              protected System.Web.UI.WebControls.TextBox TxtPopPwd;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator7;
              protected System.Web.UI.WebControls.TextBox TxtPopPort;
              protected System.Web.UI.WebControls.RequiredFieldValidator
      RequiredFieldValidator8;
              protected System.Web.UI.WebControls.Button BtnTake;
              protected System.Web.UI.WebControls.TextBox txtSender;
              protected System.Web.UI.WebControls.TextBox txtSubject;
              protected System.Web.UI.WebControls.Panel panMailInfo;
              protected System.Web.UI.WebControls.TextBox txtSendMail;
              protected System.Web.UI.WebControls.TextBox txtpriority;
              protected System.Web.UI.WebControls.TextBox txtSize;
              protected System.Web.UI.WebControls.TextBox txtBody;
              protected System.Web.UI.WebControls.TextBox txtAttPath;
              protected System.Web.UI.WebControls.ValidationSummary
      ValidationSummary1;
         
              private void Page_Load(object sender, System.EventArgs e)
              {
                  // 在此处放置用户代码以初始化页面
              }

              #region Web Form Designer generated code
              override protected void OnInit(EventArgs e)
              {
                  //
                  // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
                  //
                  InitializeComponent();
                  base.OnInit(e);
              }
             
              /// <summary>
              /// 设计器支持所需的方法 - 不要使用代码编辑器修改
              /// 此方法的内容。
              /// </summary>
              private void InitializeComponent()
              {   
                  this.BtnTake.Click += new
      System.EventHandler(this.BtnTake_Click);
                  this.Load += new System.EventHandler(this.Page_Load);

              }
              #endregion

              private void BtnTake_Click(object sender, System.EventArgs e)
              {
                  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";                  
                                             //设置邮件的附件编码方式
                              mailMessage.ISOEncodeHeaders = false;             
                                             //是否将信头编码成iso-8859-1字符集
                              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!请检查邮件服务器的设置是否正确!");
                  }
              }
          }
      }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值