在asp.net MVC4应用程序中使用MVCMailer,不断收到电子邮件发送错误

本文关键字:电子邮件 错误 MVCMailer MVC4 net asp 应用程序 | 更新日期: 2023-09-27 18:29:47

我使用MVCMailer作为我的电子邮件工具,用于此web应用程序将发送的所有电子邮件。发送电子邮件很简单,但当我在localhost上测试时,它无法正常工作。

在网站上,我把它设置成你需要的样子。我的网络配置中有这样的:

<system.net>
    <mailSettings>
      <!-- Method#1: Configure smtp server credentials -->
      <smtp from="david.stanley.13@gmail.com">
        <network enableSsl="true" host="smtp.gmail.com" port="587" userName="david.stanley.13@gmail.com" password="pass" />
      </smtp>
    </mailSettings>
</system.net>

我正在我的控制器上设置这个:

private IUserMailer _userMailer = new UserMailer();
public IUserMailer UserMailer
{
    get { return _userMailer; }
    set { _userMailer = value; }
}

这就是我调用"发送"方法来测试欢迎消息的地方(在ActionResult方法中):

_userMailer.Welcome(model.EmailAddress, model.FirstName + " " + model.LastName).Send();

我相信我没有错过教程中链接的任何内容,但当我浏览代码时,我会收到以下错误:

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. 

我想有几个问题:

  1. 有什么设置可以让我跑吗
  2. 如果我的gmail上有2-Factor auth,这会干扰吗
  3. 我是不是遗漏了一些显而易见的东西,我想删除这个问题

谢谢!

编辑

  1. 密码是个笑话,我没那么笨,给我一些信用…:)

Send()实现做到了这一点(它内置在MVC mailer中):

public virtual MvcMailMessage Welcome(string email, string fullName)
{
//ViewBag.Data = someObject;
return Populate(x =>
{
    x.Subject = "Welcome to eTrail Cub Tracking " + fullName;
    x.ViewName = "Welcome";
    x.To.Add(email);
});
}

在asp.net MVC4应用程序中使用MVCMailer,不断收到电子邮件发送错误

不确定这是否是您的问题,但看起来您忘记在配置中设置默认交付方法了。

你有

<system.net>
    <mailSettings>
      <!-- Method#1: Configure smtp server credentials -->
      <smtp from="david.stanley.13@gmail.com">
        <network enableSsl="true" host="smtp.gmail.com" port="587" userName="david.stanley.13@gmail.com" password="pass" />
      </smtp>
    </mailSettings>
</system.net>

尝试:

<system.net>
    <mailSettings>
      <!-- Method#1: Configure smtp server credentials -->
      <smtp from="david.stanley.13@gmail.com" deliveryMethod="Network">
        <network enableSsl="true" host="smtp.gmail.com" port="587" userName="david.stanley.13@gmail.com" password="pass" />
      </smtp>
    </mailSettings>
</system.net>

我也会尝试在没有MvcMailer的代码示例中直接使用SmtpClient,看看问题是否只是配置问题。

也许您错过了一些不愉快的东西:smtp.Send(x);

尝试:

public virtual MvcMailMessage Welcome(string email, string fullName)
{
    //ViewBag.Data = someObject;
    return Populate(x =>
    {
        x.Subject = "Welcome to eTrail Cub Tracking " + fullName;
        x.ViewName = "Welcome";
        x.To.Add(email);
        stmp.send(x);
    });
}