在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.
我想有几个问题:
- 有什么设置可以让我跑吗
- 如果我的gmail上有2-Factor auth,这会干扰吗
- 我是不是遗漏了一些显而易见的东西,我想删除这个问题
谢谢!
编辑
- 密码是个笑话,我没那么笨,给我一些信用…:)
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);
});
}
不确定这是否是您的问题,但看起来您忘记在配置中设置默认交付方法了。
你有
<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);
});
}