【发布时间】:2018-05-18 20:26:13
【问题描述】:
我是 ASP.NET MVC 的初学者,并尝试在 webApplication 中使用 smtp server 和 ajax 获取电子邮件。当用户单击按钮时,我的代码将生成电子邮件,该电子邮件将发送到所需的 ID。我通过调试代码成功地获得了所有值。但是,我无法在那里收到电子邮件。虽然,我也从浏览器获得 Success 按摩。但是在我想要的帐户中没有电子邮件。
Index.cshtml
<div>
<a class="btn btn-primary btn-block btn-lg" onclick="SendEmail()" >Click to send Email</a>
</div>
<script>
var SendEmail = function () {
$.ajax({
type: "Post",
url: "/Feedbacks/SendMailToUser",
success: function (data) {
alert("Success");
}
})
}
</script>
FeedbacksController.cs
public JsonResult SendMailToUser() {
bool result = false;
result = SendEmail("abc@gmail.com", "Test", "<p>Hi abc,<br/>This message is for testing purpose. So don't be upset.<br/>Kind Regards,<br/>abc</p>");
return Json(result, JsonRequestBehavior.AllowGet);
}
public bool SendEmail(string toEmail, string subject, string emailBody) {
try
{
string senderEmail = System.Configuration.ConfigurationManager.AppSettings["SenderEmail"].ToString();
string senderPassword = System.Configuration.ConfigurationManager.AppSettings["SenderPassword"].ToString();
SmtpClient client = new SmtpClient("smtp.gmail.com", 578);
client.EnableSsl = true;
client.Timeout = 100000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(senderEmail, senderPassword);
MailMessage mailMessage = new MailMessage(senderEmail, toEmail, subject, emailBody);
mailMessage.IsBodyHtml = true;
mailMessage.BodyEncoding = UTF8Encoding.UTF8;
client.Send(mailMessage);
return true;
}
catch (Exception ex) {
return false;
}
}
}
Web.config
<appSettings>
<add key="SenderEmail" value="abc@gmail.com" />
<add key="SenderPassword" value="********" />
</appSettings>
【问题讨论】:
-
你的ajax回调中
data的值是多少?是真的还是假的?如果它是假的,你知道你的代码的哪一部分正在被执行。 -
更改您的端口号以及将 enableSSL 更改为 false
-
@UbiquitousDevelopers 仅当您想发送不安全的电子邮件时 :-)
-
@ADyson - 我认为这是邮件无法成功运行的主要原因。!
-
我认为你为 SMTP 服务设置了错误的端口号,应该是这样的:
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);(GMail 的 SMTP TLS 端口是 587 而不是 578,或者为 SSL 使用 465)。尝试按照建议更改端口号,看看它是否发送生成的邮件。
标签: ajax asp.net-mvc smtpclient