你的位置:首页 > 软件开发 > ASP.net > ASP.NET MVC 模块与组件(一)——发送邮件

ASP.NET MVC 模块与组件(一)——发送邮件

发布时间:2016-05-18 21:00:08
我的见解:  模块化与组件化是编程的一种思想:提高代码的重用性,提高开发效率。  常见的模块化就是函数与各种类型的封装,若是代码具有更高的重用价值(能够提供给别人使用),建议可以考虑封装成动态链接库(dll),直接引用使用。  常见的组件化就是将各种需求功能封装成一系列完整的文档 ...

   

  我的见解:

  模块化与组件化是编程的一种思想:提高代码的重用性,提高开发效率。

  常见的模块化就是函数与各种类型的封装,若是代码具有更高的重用价值(能够提供给别人使用),建议可以考虑封装成动态链接库(dll),直接引用使用。

  常见的组件化就是将各种需求功能封装成一系列完整的文档(比模块化要求更高、更完整),要用的时候直接引用对应的文件就可以使用。

 

  说了那么多,我们就直奔今天的主题:在用get='_blank'>ASP.NET 技术开发Web网站的时候,如何实现发送邮件的功能?

  下面的是一个专门用来发送邮件的类(封装好了,可以直接编译成动态链接库,方便以后重复使用)(默认是以Html格式发送的邮件)

ASP.NET MVC  模块与组件(一)——发送邮件ASP.NET MVC  模块与组件(一)——发送邮件
using System;using System.IO;using System.Net.Mail;using System.Net.Mime;namespace DllLibrary.SendEmail{  /// <summary>  /// 发送邮件的类  /// </summary>  public class Email  {    private MailMessage mMailMessage;  //主要处理发送邮件的内容(如:收发人地址、标题、主体、图片等等)    private SmtpClient mSmtpClient; //主要处理用smtp方式发送此邮件的配置信息(如:邮件服务器、发送端口号、验证方式等等)    private int mSenderPort;  //发送邮件所用的端口号(htmp协议默认为25)    private string mSenderServerHost;  //发件箱的邮件服务器地址(IP形式或字符串形式均可)    private string mSenderPassword;  //发件箱的密码    private string mSenderUsername;  //发件箱的用户名(即@符号前面的字符串,例如:hello@163.com,用户名为:hello)    private bool mEnableSsl;  //是否对邮件内容进行socket加密传输    private bool mEnablePwdAuthentication; //是否对发件人邮箱进行密码验证    ///<summary>    /// 构造函数    ///</summary>    ///<param name="server">发件箱的邮件服务器地址</param>    ///<param name="toMail">收件人地址(可以是多个收件人,程序中是以“;"进行区分的)</param>    ///<param name="fromMail">发件人地址</param>    ///<param name="subject">邮件标题</param>    ///<param name="emailBody">邮件内容(可以以html格式进行设计)</param>    ///<param name="username">发件箱的用户名(即@符号前面的字符串,例如:hello@163.com,用户名为:hello)</param>    ///<param name="password">发件人邮箱密码</param>    ///<param name="port">发送邮件所用的端口号(htmp协议默认为25)</param>    ///<param name="sslEnable">true表示对邮件内容进行socket层加密传输,false表示不加密</param>    ///<param name="pwdCheckEnable">true表示对发件人邮箱进行密码验证,false表示不对发件人邮箱进行密码验证</param>    public Email(string server, string toMail, string fromMail, string subject, string emailBody, string username, string password, string port, bool sslEnable, bool pwdCheckEnable)    {      try      {        mMailMessage = new MailMessage();        mMailMessage.To.Add(toMail);        mMailMessage.From = new MailAddress(fromMail);        mMailMessage.Subject = subject;        mMailMessage.Body = emailBody;        mMailMessage.IsBodyHtml = true;        mMailMessage.BodyEncoding = System.Text.Encoding.UTF8;        mMailMessage.Priority = MailPriority.Normal;        this.mSenderServerHost = server;        this.mSenderUsername = username;        this.mSenderPassword = password;        this.mSenderPort = Convert.ToInt32(port);        this.mEnableSsl = sslEnable;        this.mEnablePwdAuthentication = pwdCheckEnable;      }      catch (Exception ex)      {        throw ex;        //Console.WriteLine(ex.ToString());      }    }    ///<summary>    /// 添加附件    ///</summary>    ///<param name="attachmentsPath">附件的路径集合,以分号分隔</param>    public void AddAttachments(string attachmentsPath)    {      try      {        string[] path = attachmentsPath.Split(';'); //以什么符号分隔可以自定义        Attachment data;        ContentDisposition disposition;        for (int i = 0; i < path.Length; i++)        {          data = new Attachment(path[i], MediaTypeNames.Application.Octet);          disposition = data.ContentDisposition;          disposition.CreationDate = File.GetCreationTime(path[i]);          disposition.ModificationDate = File.GetLastWriteTime(path[i]);          disposition.ReadDate = File.GetLastAccessTime(path[i]);          mMailMessage.Attachments.Add(data);        }      }      catch (Exception ex)      {        throw ex;        //Console.WriteLine(ex.ToString());      }    }    /// <summary>    /// 邮件的发送    /// </summary>    /// <returns>发送成功返回true,否则返回false</returns>    public bool Send()    {      try      {        if (mMailMessage != null)        {          mSmtpClient = new SmtpClient();          //mSmtpClient.Host = "smtp." + mMailMessage.From.Host;          mSmtpClient.Host = this.mSenderServerHost;          mSmtpClient.Port = this.mSenderPort;          mSmtpClient.UseDefaultCredentials = false;          mSmtpClient.EnableSsl = this.mEnableSsl;          if (this.mEnablePwdAuthentication)          {            System.Net.NetworkCredential nc = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword);            //mSmtpClient.Credentials = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword);            //NTLM: Secure Password Authentication in Microsoft Outlook Express            mSmtpClient.Credentials = nc.GetCredential(mSmtpClient.Host, mSmtpClient.Port, "NTLM");          }          else          {            mSmtpClient.Credentials = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword);          }          mSmtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;          mSmtpClient.Send(mMailMessage);        }      }      catch      {        return false;      }      return true;    }  }}

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:ASP.NET MVC 模块与组件(一)——发送邮件

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。