我正在使用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 邮件程序中):
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);
});
}