【问题标题】:sending email from Controller mvc4从控制器 mvc4 发送电子邮件
【发布时间】:2015-03-05 08:07:59
【问题描述】:

我正在尝试通过以下操作方法发送发送电子邮件

    [HttpPost]
    public ActionResult ForgotPassword1()
    {
        dbAlKhaleejEntities _context = new dbAlKhaleejEntities();
        var email = Request["Email"];
        var email_adress = _context.CUSTOMERs.First(em => email == em.CUSTOMER_EMAIL);
        var mailto = email_adress.CUSTOMER_EMAIL;

            MailMessage msg = new MailMessage();

            SmtpClient client = new SmtpClient("smtp.gmail.com");
            client.Credentials = new NetworkCredential("umairliaquat63@gmail.com", "abc");
            client.Host = "smtp.gmail.com";
            client.Port = 587;

            msg.From = new MailAddress("umairliaquat63@gmail.com");
            msg.To.Add(mailto);
            msg.Subject = "Password recovery";
            msg.Body = "Test Recovering the password";
            msg.IsBodyHtml = true;
            msg.Priority = MailPriority.High;


            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.EnableSsl = true;
            client.UseDefaultCredentials = false;

            client.Send(msg);
            return RedirectToAction("forgetPassword");
  }

但在“client.Send(msg)”行,它抛出异常“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证”。我该如何解决这个问题

【问题讨论】:

  • 我建议您在将代码扔到 webz 时使用虚拟电子邮件地址来防止垃圾邮件
  • this

标签: asp.net-mvc-4 email


【解决方案1】:

试试这个 sn-p:

 using (var client = new SmtpClient(SmtpServerHost, SmtpPort)
  {
    Credentials = new NetworkCredential(NetworkCredentialUserName, Password),
    EnableSsl = this.enableSSL
   }
   )
    {
      MailMessage msg = new MailMessage();          
      msg.From = new MailAddress(FromMailingAddress);
      msg.Subject = this.Subject;
  }

【讨论】:

    【解决方案2】:

    据我所知,您不需要编写自己的代码,因为 SmtpClient 可以使用您的配置:

    <system.net>
      <mailSettings>
        <smtp from="It's me &lt;its@my.email&gt;">
          <network host="smtp.ip.or.domain" port="527" defaultCredentials="false" userName="noreply" password="12345" enableSsl="true"/>
        </smtp>
      </mailSettings>
    </system.net>
    

    两次验证您的邮件设置。此外,SMTP 服务器可以拒绝来自黑名单或不来自白名单的 IP 连接。 SMTP 服务器可以将您的邮件检测为垃圾邮件。

    您可以使用自己的本地 SMTP 或专门的服务来群发邮件。

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 2015-12-29
      • 1970-01-01
      • 2014-10-31
      • 2020-11-03
      相关资源
      最近更新 更多