.net实现邮件发送及解决遇到问题

1、首先写一个Common类,将发送邮件的代码写到里面

        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="toEmail">要发送给哪个邮箱</param>
        /// <param name="subject">邮箱主题</param>
        /// <param name="body">邮箱内容</param>
        /// <returns>返回发送邮箱的结果</returns>             
        public static bool SendEmail(string toEmail, string subject, string body)
        {
            //配置文件中存储的发送人的服务器以及账号信息
            string smtpServer = ConfigurationManager.AppSettings["SmtpServer"];
            string smtpFrom = ConfigurationManager.AppSettings["SmtpFrom"];
            string smtpUserName = ConfigurationManager.AppSettings["SmtpUserName"];
            string smtpPassword = ConfigurationManager.AppSettings["SmtpPassword"];

            MailMessage mailObj = new MailMessage();
            mailObj.IsBodyHtml = true;
            mailObj.From = new MailAddress(smtpFrom); //发送人邮箱地址
            mailObj.SubjectEncoding= System.Text.Encoding.UTF8;
            mailObj.BodyEncoding = System.Text.Encoding.UTF8;
            mailObj.Priority = MailPriority.High;//邮件优先级 
            mailObj.To.Add(toEmail);   //收件人邮箱地址
            mailObj.Subject = subject;    //主题
            mailObj.Body = body;    //正文
            SmtpClient smtp = new SmtpClient();//通过.Net内置的SmtpClient类和邮件服务器进行通讯,发送邮件。           
            smtp.Host = smtpServer;         //smtp服务器名称
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new NetworkCredential(smtpUserName, smtpPassword);  //发送人的登录名和密码                       
            try
            {
                smtp.Send(mailObj);
                return true;
            }
            catch (Exception ex)

            {
                return false;
                throw ex;
            }
        }        

*下面是配置文件中的发件人以及邮箱配置方式(放在配置文件方便修改,也可以直接在发送邮件类中写)


 


2、在controller中调用即可。不过在163邮箱需要配置一下,开启smtp,并且需要将你发送邮件里面配置的smtp密码改为它要求的。

下面测试调用即可。如果还有错误的话,就会是下面这个错误,同样这个错误也不一定是百分百出现的。但是还是写出来比较好。

我在断点调试的时候发现的   

{"事务失败。 服务器响应为:MI:SPB UserReject 0,smtp3,DdGowAA3378huFhYKwDsLg--.19311S2 1482209314,please feedback at http://feedback.mail.126.com/antispam/complain.php?user=lbj13796396303@163.com"}

就需要你去这个地址填写以下163邮箱的协议就好了。

http://feedback.mail.126.com/antispam/complain.php
posted @ 2016-12-21 10:36  前行。。。  阅读(487)  评论(0编辑  收藏  举报