我正在使用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.
我猜的几个问题:
- 我可以进行设置来使其运行吗?
- 如果我的 Gmail 上有 2-Factor auth,这会产生干扰吗?
- 我是否遗漏了一些非常明显的内容,以至于我想删除这个问题?
谢谢!
编辑
- 密码是个玩笑,我没那么笨,请给我一些信任......:)
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/