zoukankan      html  css  js  c++  java
  • C# 电子邮件操作类

    项目开发中经常需要给用户发送电子邮件,现在把我们项目中在用的一个电子邮件操作类分享给大家,这个类是使用 .Net 类库中 System.Net.Mail 命名空间中的类发送电子邮件的。

    /// <summary>
    /// 电子邮件操作类。
    /// </summary>
    public class Mail
    {
        /// <summary>
        /// 初始化一个电子邮件操作类的空实例。
        /// </summary>
        public Mail()
        {
        }
        /// <summary>
        /// 初始化一个电子邮件操作类的实例。
        /// </summary>
        /// <param name="from">发件人的电子邮件地址。</param>
        /// <param name="fromName">发件人的姓名。</param>
        /// <param name="recipient">收件人的电子邮件地址。</param>
        /// <param name="recipientName">收件人的姓名。</param>
        /// <param name="subject">电子邮件的主题。</param>
        /// <param name="body">电子邮件的内容。</param>
        /// <param name="host">电子邮件的服务器地址。</param>
        /// <param name="port">电子邮件的主机端口号。</param>
        /// <param name="username">登录电子邮件服务器的用户名。</param>
        /// <param name="password">登录电子邮件服务器的用户密码。</param>
        /// <param name="isBodyHtml">邮件的正文是否是HTML格式。</param>
        /// <param name="file">邮件附件的文件路径。</param>
        public Mail(string from, string fromName, string recipient, string recipientName, string subject, string body, string host, int port, string username, string password, bool isBodyHtml, string filepath)
        {
            this._from = from;
            this._fromName = fromName;
            this._recipient = recipient;
            this._recipientName = recipientName;
            this._subject = subject;
            this._body = body;
            this._serverHost = host;
            this._serverPort = port;
            this._username = username;
            this._password = password;
            this._isBodyHtml = isBodyHtml;
            this._attachment.Add(filepath);
        }
        /// <summary>
        /// 初始化一个电子邮件操作类的实例。
        /// </summary>
        /// <param name="from">发件人的电子邮件地址。</param>
        /// <param name="fromName">发件人的姓名。</param>
        /// <param name="recipient">收件人的电子邮件地址。</param>
        /// <param name="recipientName">收件人的姓名。</param>
        /// <param name="subject">电子邮件的主题。</param>
        /// <param name="body">电子邮件的内容。</param>
        /// <param name="host">电子邮件的服务器地址。</param>
        /// <param name="port">电子邮件的主机端口号。</param>
        /// <param name="username">登录电子邮件服务器的用户名。</param>
        /// <param name="password">登录电子邮件服务器的用户密码。</param>
        /// <param name="isBodyHtml">邮件的正文是否是HTML格式。</param>
        public Mail(string from, string fromName, string recipient, string recipientName, string subject, string body, string host, int port, string username, string password, bool isBodyHtml)
            : this(from, fromName, recipient, recipientName, subject, body, host, 25, username, password, isBodyHtml, null)
        {
        }
    
        /// <summary>
        /// 初始化一个电子邮件操作类的实例。
        /// </summary>
        /// <param name="from">发件人的电子邮件地址。</param>
        /// <param name="fromName">发件人的姓名。</param>
        /// <param name="recipient">收件人的电子邮件地址。</param>
        /// <param name="recipientName">收件人的姓名。</param>
        /// <param name="subject">电子邮件的主题。</param>
        /// <param name="body">电子邮件的内容。</param>
        /// <param name="host">电子邮件的服务器地址。</param>
        /// <param name="port">电子邮件的主机端口号。</param>
        /// <param name="username">登录电子邮件服务器的用户名。</param>
        /// <param name="password">登录电子邮件服务器的用户密码。</param>
        /// <param name="isBodyHtml">邮件的正文是否是HTML格式。</param>
        public Mail(string from, string fromName, string recipient, string recipientName, string subject, string body, string host, string username, string password)
            : this(from, fromName, recipient, recipientName, subject, body, host, 25, username, password, false, null)
        {
        }
        /// <summary>
        /// 初始化一个电子邮件操作类的实例(邮件的正文非HTML格式,端口默认25)。
        /// </summary>
        /// <param name="from">发件人的电子邮件地址。</param>
        /// <param name="recipient">收件人的电子邮件地址。</param>
        /// <param name="subject">电子邮件的主题。</param>
        /// <param name="body">电子邮件的内容。</param>
        /// <param name="host">电子邮件的服务器地址。</param>
        /// <param name="username">登录电子邮件服务器的用户名。</param>
        /// <param name="password">登录电子邮件服务器的用户密码。</param>
        /// <param name="isBodyHtml">邮件的正文是否是HTML格式。</param>
        public Mail(string from, string recipient, string subject, string body, string host, string username, string password)
            : this(from, null, recipient, null, subject, body, host, 25, username, password, false, null)
        {
        }
        /// <summary>
        /// 初始化一个电子邮件操作类的实例(邮件的正文非HTML格式,端口默认25)。
        /// </summary>
        /// <param name="from">发件人的电子邮件地址。</param>
        /// <param name="recipient">收件人的电子邮件地址。</param>
        /// <param name="subject">电子邮件的主题。</param>
        /// <param name="body">电子邮件的内容。</param>
        /// <param name="port">电子邮件的主机端口号。</param>
        /// <param name="host">电子邮件的服务器地址。</param>
        /// <param name="username">登录电子邮件服务器的用户名。</param>
        /// <param name="password">登录电子邮件服务器的用户密码。</param>
        public Mail(string from, string recipient, string subject, string body, string host, int port, string username, string password)
            : this(from, null, recipient, null, subject, body, host, port, username, password, false, null)
        {
        }
    
        private string _subject;
        private string _body;
        private string _from;
        private string _fromName;
        private string _recipientName;
        private string _serverHost;
        private int _serverPort;
        private string _username;
        private string _password;
        private bool _isBodyHtml;
        private string _recipient;
        private List<string> _attachment = new List<string> { };
    
        /// <summary>
        /// 获取或设置邮件的主题。
        /// </summary>
        public string Subject
        {
            get { return this._subject; }
            set { this._subject = value; }
        }
    
        /// <summary>
        /// 获取或设置邮件的正文内容。
        /// </summary>
        public string Body
        {
            get { return this._body; }
            set { this._body = value; }
        }
    
        /// <summary>
        /// 获取或设置发件人的邮件地址。
        /// </summary>
        public string From
        {
            get { return this._from; }
            set { this._from = value; }
        }
    
        /// <summary>
        /// 获取或设置发件人的姓名。
        /// </summary>
        public string FromName
        {
            get { return this._fromName; }
            set { this._fromName = value; }
        }
    
        /// <summary>
        /// 获取或设置收件人的姓名。
        /// </summary>
        public string RecipientName
        {
            get { return this._recipientName; }
            set { this._recipientName = value; }
        }
    
        /// <summary>
        /// 获取或设置收件人的邮件地址。
        /// </summary>
        public string Recipient
        {
            get { return this._recipient; }
            set { this._recipient = value; }
        }
    
        /// <summary>
        /// 获取或设置邮件服务器主机地址。
        /// </summary>
        public string ServerHost
        {
            get { return this._serverHost; }
            set { this._serverHost = value; }
        }
    
        /// <summary>
        /// 获取或设置邮件服务器的端口号。
        /// </summary>
        public int ServerPort
        {
            set { this._serverPort = value; }
            get { return this._serverPort; }
        }
    
    
        /// <summary>
        /// 获取或设置SMTP认证时使用的用户名。
        /// </summary>
        public string Username
        {
            get { return this._username; }
            set
            {
                if (value.Trim() != "")
                {
                    this._username = value.Trim();
                }
                else
                {
                    this._username = "";
                }
            }
        }
    
        /// <summary>
        /// 获取或设置SMTP认证时使用的密码。
        /// </summary>
        public string Password
        {
            set { this._password = value; }
            get { return this._password; }
        }
    
        /// <summary>
        /// 获取或设置指示邮件正文是否为 Html 格式的值。
        /// </summary>
        public bool IsBodyHtml
        {
            get { return this._isBodyHtml; }
            set { this._isBodyHtml = value; }
        }
    
        /// <summary>
        /// 获取电子邮件附件。
        /// </summary>
        public List<string> Attachment
        {
            get { return this._attachment; }
            set { this._attachment = value; }
        }
    
        ///// <summary>
        ///// 添加一个收件人的邮箱地址。
        ///// </summary>
        ///// <param name="mailList">联系人列表。</param>
        ///// <returns></returns>
        //public bool AddRecipient(params string[] mailList)
        //{
        //    this.Recipient = mailList[0].Trim();
        //    return true;
        //}
    
        /// <summary>
        /// 添加电子邮件附件。
        /// </summary>
        /// <param name="fileList">文件列表。</param>
        /// <returns>是否添加成功。</returns>
        public bool AddAttachment(params string[] fileList)
        {
            if (fileList.Length > 0)
            {
                foreach (string file in fileList)
                {
                    if (file != null)
                    {
                        this._attachment.Add(file);
                    }
                    else
                    {
                        return false;
                    }
                }
                return true;
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// 发送电子邮件。
        /// </summary>
        /// <returns>是否发送成功。</returns>
        public bool Send()
        {
            //初始化 MailMessage 对象。
            MailMessage mail = new MailMessage();
            Encoding encoding = Encoding.GetEncoding("utf-8");
            mail.From = new MailAddress(this.From, this.FromName, encoding);
            mail.To.Add(new MailAddress(this.Recipient, this.RecipientName));
            mail.Subject = this.Subject;
            mail.IsBodyHtml = this.IsBodyHtml;
            mail.Body = this.Body;
            mail.Priority = MailPriority.Normal;
            mail.BodyEncoding = encoding;
            if (this.Attachment.Count > 0)
            {
                foreach (string file in this.Attachment)
                {
                    mail.Attachments.Add(new Attachment(file));
                }
            }
            //初始化 SmtpClient 对象。
            SmtpClient smtp = new SmtpClient();
            smtp.Host = this.ServerHost;
            smtp.Port = this.ServerPort;
            smtp.Credentials = new NetworkCredential(this.Username, this.Password);
            if (smtp.Port != 25)
            {
                smtp.EnableSsl = true;
            }
            try
            {
                smtp.Send(mail);
            }
            catch (SmtpException ex)
            {
                string message = ex.Message;
                return false;
            }
            return true;
        }
    }
    

      

  • 相关阅读:
    项目maven update 后启动项目出现导常:org.springframework.web.context.ContextLoaderListener
    oracle 函数
    sql 字符串函数、数学函数
    sql 内连接 子查询 合并查询
    sql 单表查询练习
    oracle 实现主键自增
    create alter rename desc select update delete insert
    oracle 数据类型
    oracle 导入导出 dmp 的三种方式
    oracle imp dmp
  • 原文地址:https://www.cnblogs.com/weisenz/p/2411478.html
Copyright © 2011-2022 走看看