码迷,mamicode.com
首页 > Web开发 > 详细

.NET MVC之邮件发送

时间:2017-05-09 15:00:49      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:端口   div   pass   htm   本地   har   项目   技术   mic   

在以前的项目中,设计到发送邮件的WEB站,当时在网上找了一段代码研究了一下:

    private static void SendEmail(string clientHost, string emailAddress, string receiveAddress,
          string userName, string password, string subject, string body)
        {
            MailMessage mail = new MailMessage();
            mail.From = new MailAddress(emailAddress);
            mail.To.Add(new MailAddress(receiveAddress));
            mail.Subject = subject;
            mail.Body = body;
            mail.IsBodyHtml = true;
            mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

            SmtpClient client = new SmtpClient();
            client.Host = clientHost;
            client.Credentials = new NetworkCredential(userName, password);
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            try
            {
                client.SendAsync(mail,null);
            }
            catch (Exception)
            {

            }
        }

  在本地测试没问题,但是部署到window server2012上就无法发送了,然后在网上百度了一堆,配置邮件服务器什么的都不尽人意,后来发现一种已弃用的代码反而正常了:

  public static void SendEmail(string from, string subject, string body, List<string> mailAddress, string host, int port, string password)
        {
            System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
            try
            {

                mail.To = string.Join(",", mailAddress);

                mail.From = from;
                mail.Subject = subject;
                mail.BodyFormat = System.Web.Mail.MailFormat.Html;
                mail.Body = body;

                mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //身份验证
                mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", mail.From); //邮箱登录账号,这里跟前面的发送账号一样就行
                mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password); //这个密码要注意:如果是一般账号,要用授权码;企业账号用登录密码
                mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);//端口
                mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");//SSL加密
                System.Web.Mail.SmtpMail.SmtpServer = "smtp.qq.com";    //企业账号用smtp.exmail.qq.com
                System.Web.Mail.SmtpMail.Send(mail);

                //邮件发送成功
            }
            catch (Exception ex)
            {
                //失败,错误信息:ex.Message;
            }
        }

  技术分享

后来发现可能是因为服务器架设在内网中,特定端口没开或者一些限制,不过由于工作要求,暂时只能退步走了,以后一定要改正过来。

 

.NET MVC之邮件发送

标签:端口   div   pass   htm   本地   har   项目   技术   mic   

原文地址:http://www.cnblogs.com/umeall/p/6830255.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!