c# - 在 asp.net MVC4 应用程序中使用 MVCMailer,在发送电子邮件时不断出现错误

标签 c# .net asp.net-mvc email mvcmailer

我正在使用MVCMailer作为我的电子邮件工具,用于处理此网络应用程序将发送的所有电子邮件。发送电子邮件很简单,但当我在本地主机上测试时,我无法让它工作。

在网站上,我按照您的需要进行了设置。我的网络配置中有这样的内容:

<system.net>
    <mailSettings>
      <!-- Method#1: Configure smtp server credentials -->
      <smtp from="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cfabaeb9a6abe1bcbbaea1a3aab6e1fefc8fa8a2aea6a3e1aca0a2" rel="noreferrer noopener nofollow">[email protected]</a>">
        <network enableSsl="true" host="smtp.gmail.com" port="587" userName="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bbdfdacdd2df95c8cfdad5d7dec2958a88fbdcd6dad2d795d8d4d6" rel="noreferrer noopener nofollow">[email protected]</a>" password="pass" />
      </smtp>
    </mailSettings>
</system.net>

我将其设置在我的 Controller 之上:

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 邮件程序中):

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);
});
}

最佳答案

不确定这是否是您的问题,但您似乎忘记在配置中设置默认传送方法。

你有

<system.net>
    <mailSettings>
      <!-- Method#1: Configure smtp server credentials -->
      <smtp from="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ed898c9b8489c39e998c83818894c3dcdead8a808c8481c38e8280" rel="noreferrer noopener nofollow">[email protected]</a>">
        <network enableSsl="true" host="smtp.gmail.com" port="587" userName="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dcb8bdaab5b8f2afa8bdb2b0b9a5f2edef9cbbb1bdb5b0f2bfb3b1" rel="noreferrer noopener nofollow">[email protected]</a>" password="pass" />
      </smtp>
    </mailSettings>
</system.net>

尝试:

<system.net>
    <mailSettings>
      <!-- Method#1: Configure smtp server credentials -->
      <smtp from="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7115100718155f0205101f1d14085f404231161c10181d5f121e1c" rel="noreferrer noopener nofollow">[email protected]</a>" deliveryMethod="Network">
        <network enableSsl="true" host="smtp.gmail.com" port="587" userName="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="84e0e5f2ede0aaf7f0e5eae8e1fdaab5b7c4e3e9e5ede8aae7ebe9" rel="noreferrer noopener nofollow">[email protected]</a>" password="pass" />
      </smtp>
    </mailSettings>
</system.net>

我还会尝试在不使用 MvcMailer 的情况下直接在代码示例中使用 SmtpClient,看看问题是否只是配置问题。

关于c# - 在 asp.net MVC4 应用程序中使用 MVCMailer,在发送电子邮件时不断出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18565422/

相关文章:

asp.net - 重新部署后不记名 token 失效

asp.net-mvc - Knockoutjs 可编辑网格

c# - ASP.NET WebAPI Selfhost 没有解析到 Controller 的路由

c# - 如何使用 LINQ 中的 Dynamic 处理 Dapper 返回键值对

c# - 通过 Web API 中的属性限制 OData $filter

c# - 地理数据网络服务

java - 在桌面应用程序中加载网页

c# - 如何在 Entity Framework Code First 中以编程方式使用迁移?

java - 使用 Java 创建 Outlook 任务

c# - 程序和调试器在没有出现问题的情况下退出