• Mail发送封装类


    代码实现:

    MailSmtp ms = new MailSmtp("smtp.qq.com","1215247044","xxxx");
     
              //可选参数
              ms.SetCC("610262374@qq.com");//抄送可以多个
              ms.SetBC("610262374@qq.com");//暗送可以多个
              ms.SetIsHtml(true);//默认:true
              ms.SetEncoding(System.Text.Encoding.UTF8);//设置格式 默认utf-8
              ms.SetIsSSL(true);//是否ssl加密 默认为false
     
              //调用函数
              bool isSuccess = ms.Send("1215247044@qq.com", "test", "610262374@qq.com", "哈哈", "哈哈", Server.MapPath("~/Test.dll"));
     
              //输出结果
              Response.Write(ms.Result);

    封装类:

    using System;
    using System.IO;
    using System.Web.UI.WebControls;
    using System.Text;
    using System.Net.Mail;
    using System.Net;
    using System.Linq;
    using System.Text.RegularExpressions;
     
    namespace SyntacticSugar
    {
        /// <summary>
        /// ** 描述:邮件发送
        /// ** 创始时间:2015-6-8
        /// ** 修改时间:-
        /// ** 作者:sunkaixuan
        /// ** 使用说明:http://www.cnblogs.com/sunkaixuan/p/4562147.html
        /// </summary>
        public class MailSmtp
        {
            /// <summary>
            /// 设置邮件编码类型
            /// </summary>
            /// <param name="contentEncoding"></param>
            public void SetEncoding(Encoding contentEncoding)
            {
                this._encoding = contentEncoding;
     
            }
            /// <summary>
            ///设置邮件正文是否为 Html 格式
            /// </summary>
            /// <param name="isHtml"></param>
            public void SetIsHtml(bool isHtml)
            {
                this._isHtml = isHtml;
            }
            /// <summary>
            /// 抄送
            /// </summary>
            /// <param name="cc"></param>
            public void SetCC(params string[] cc)
            {
                this._cc = cc;
            }
            /// <summary>
            /// 暗送
            /// </summary>
            /// <param name="cc"></param>
            public void SetBC(params string[] bc)
            {
                this._bcc = bc;
            }
            /// <summary>
            /// 是否ssl加密
            /// </summary>
            /// <param name="isSSL"></param>
            public void SetIsSSL(bool isSSL)
            {
                this._smtp.EnableSsl = isSSL;
            }
     
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="host"></param>
            /// <param name="username">邮件账号</param>
            /// <param name="password">密码</param>
            public MailSmtp(string host, string username, string password)
            {
                this._smtp.Host = host;
                this._smtp.Port = 0x19;
                this._smtp.EnableSsl = false;
                this._isHtml = true;
                this._encoding = Encoding.UTF8;
                if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
                {
                    this._smtp.UseDefaultCredentials = false;
                }
                else
                {
                    this._smtp.Credentials = new NetworkCredential(username, password);
                }
            }
     
            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="from">发件人邮件地址</param>
            /// <param name="sender">发件人显示名称</param>
            /// <param name="to">收件人地址</param>
            /// <param name="subject">邮件标题</param>
            /// <param name="body">邮件正文</param>
            /// <param name="file">附件地址数组</param>
            /// <returns>bool 是否成功 </returns>
            public bool Send(string from, string sender, string to, string subject, string body, params string[] file)
            {
                return Send(from, sender, new string[] { to }, subject, body, file);
            }
     
            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="from">发件人邮件地址</param>
            /// <param name="sender">发件人显示名称</param>
            /// <param name="to">收件人地址</param>
            /// <param name="subject">邮件标题</param>
            /// <param name="body">邮件正文</param>
            /// <param name="file">附件地址数组</param>
            /// <returns>bool 是否成功 </returns>
            public bool Send(string from, string sender, string[] to, string subject, string body, params string[] file)
            {
                string mailReg = @"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$";
                if (to == null)
                {
                    throw new ArgumentNullException("MailSmtp.Send.to");
                }
     
                if (to.Any(oit => !Regex.IsMatch(oit + "", mailReg)))
                {
                    this.Result = "收件人地址不合法";
                    return false;
                }
                if (_bcc != null && _bcc.Length > 0)
                {
                    if (_bcc.Any(oit => !Regex.IsMatch(oit + "", mailReg)))
                    {
                        this.Result = "暗送人地址不合法";
                        return false;
                    }
                }
                if (_cc != null && _cc.Length > 0)
                {
                    if (_cc.Any(oit => !Regex.IsMatch(oit + "", mailReg)))
                    {
                        this.Result = "抄送人地址不合法";
                        return false;
                    }
                }
                MailMessage message = new MailMessage();
     
                // 创建一个附件对象
                foreach (var r in file)
                {
                    Attachment objMailAttachment;
                    objMailAttachment = new Attachment(r);//发送邮件的附件
                    message.Attachments.Add(objMailAttachment);
                }
                message.From = new MailAddress(from, sender);
                message.Subject = subject;
                message.SubjectEncoding = this._encoding;
                message.Body = body;
                message.BodyEncoding = this._encoding;
                message.IsBodyHtml = this._isHtml;
                message.Priority = MailPriority.Normal;
                foreach (string str in to)
                {
                    message.To.Add(str);
                }
                if (this._bcc != null && this._bcc.Length > 0)
                {
                    foreach (string b in this._bcc)
                    {
                        message.Bcc.Add(b);
                    }
                }
                if (this._cc != null && this._cc.Length > 0)
                {
                    foreach (string c in this._cc)
                    {
                        message.CC.Add(c);
                    }
                }
     
                try
                {
                    this._smtp.Send(message);
                    return true;
                }
                catch (Exception ex)
                {
     
                    Console.WriteLine(ex.Message);
                }
     
                return false;
            }
     
            private SmtpClient _smtp = new SmtpClient();
            private Encoding _encoding { get; set; }
            private bool _isHtml { get; set; }
            private string[] _cc { get; set; }
            private string[] _bcc { get; set; }
            /// <summary>
            /// 获取发送结果,成功则为空
            /// </summary>
            public string Result { get; private set; }
        }
     
     
    }
  • 相关阅读:
    写一个列表生成式,产生一个公差为11的等差数列
    如果对方网站反爬取,封IP了怎么办?
    为什么会选择redis数据库?
    你是否了解谷歌的无头浏览器?
    遇到的反爬虫策略以及解决方法?
    常见的HTTP方法有哪些?
    遇到反爬机制怎么处理?
    列举网络爬虫所用到的网络数据包,解析包?
    python中的关键字yield有什么作用?
    如下代码输出的是什么?
  • 原文地址:https://www.cnblogs.com/jameslif/p/6831335.html
Copyright © 2020-2023  润新知