ASP.NET 邮件发送

ASP.NET 邮件发送用NET的MAIL类即可实现。

邮件发时,为不影响进程,所以采用多线程实现比较好。

        /// <summary>
        /// 多线程邮件发送 多线程需注意不要引用到外部方法代码
        /// </summary>
        /// <param name="model">参数集</param>
        /// <param name="toemail">收件人邮箱</param>
        /// <param name="title">邮件标题</param>
        /// <param name="content">邮件内容</param>
        public void SendEmail(Dictionary<string, object> obj, string toEmail, string toTitle, string toBody)
        {
            obj.Add("toEmail", toEmail);   //收件人
            obj.Add("toTitle", toTitle);   //邮件标题
            obj.Add("toBody", toBody);     //邮件内容
            
            Thread tr = new Thread(new ParameterizedThreadStart(SendEmail));
            tr.Start(obj);
        }

        /// <summary>
        /// 单条邮件发送
        /// </summary>
        /// <returns></returns>
        private void SendEmail(object p)
        {
            Dictionary<string, object> dic = p as Dictionary<string, object>;

            MailAddress from = new MailAddress(dic["SmtpEmail"].ToString());  //SMTP邮箱账户
            MailAddress to = new MailAddress(dic["toEmail"].ToString());  //收件人邮箱
            MailMessage message = new MailMessage(from, to);
            message.IsBodyHtml = true;
            message.Subject = dic["toTitle"].ToString();  //邮件标题
            message.Body = dic["toBody"].ToString();  //邮件内容
            SmtpClient client = new SmtpClient(dic["SmtpService"].ToString());  //SMTP地址
            client.EnableSsl = Convert.ToBoolean(dic["SmtpSSL"]);  //是否启用SSL
            client.Port = Convert.ToInt32(dic["SmtpPort"]);  //SMTP端口
            client.Credentials = new NetworkCredential(dic["SmtpAccount"].ToString(), dic["SmtpPwd"].ToString());  //邮箱账户 密码
            ServicePointManager.ServerCertificateValidationCallback =
                delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };
            client.Send(message);
        }

邮件发送说明:

1、邮件发送不成功时,查看服务器日志,可找到错误原因。

Gmail错误:SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.5.1需要验证

Gmail The SMTP server 5.5.1 Authentication Required

邮件安全性没开启,https://myaccount.google.com/security#connectedapps  

访问上面地址,有个开关,开启即可。

2、发送HTML页面代码,将邮件内容填写为HTML源代码即可,注意CSS代码写页面里面,引用外部文件需要注意绝对路径。

猜你喜欢

转载自www.cnblogs.com/ubshoes/p/9169437.html