我在這裏稍微困惑 - 我收到以下錯誤:「未指定SMTP主機。」 - 但它是指定?
The SMTP host was not specified.
即使我的代碼似乎是正確的(從我所看到的)。
我能夠通過包含控制器內的所有細節來手動完成,例如,
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com");
smtpClient.Port = 587;
... etc
但我不應該這樣做,因爲我想用內部mailSettings
細節(使其可重複使用的各種不同的控制器)。
mailSettings
在我Web.Config
文件:
<system.net>
<mailSettings>
<smtp from="[email protected]" deliveryMethod="Network" >
<network host="smtp.gmail.com" defaultCredentials="true"
port="587" enableSsl="true" userName="[email protected]"
password="example"/>
</smtp>
</mailSettings>
</system.net>
我的控制器動作:
[HttpPost]
public ActionResult SubmitFeature(FormData formData)
{
SmtpClient smtpClient = new SmtpClient();
MailMessage mail = new MailMessage();
mail.To.Add(new MailAddress("[email protected]"));
mail.Body = "Test";
smtpClient.Send(mail);
return View("Example");
}
有什麼我失蹤這可能會導致此?我還沒有搞亂Web.Config中的其他設置,它們就像設置新的MVC5項目時一樣。
你添加到了「Release.Web.Config」,而不是實際的Web.Config任何機會呢? – turtlepick
@flaviotsf不,它在Web.Config中。我應該在其他地方使用控制器內的Web配置嗎? – user2381114
我相信你應該把'defaultCredentials'改成'false'來使用提供的憑證進行驗證。 –