我搜索了其他帖子,并在我的gmail帐户(https://myaccount.google.com/lesssecureapps)中设置了必填项
,但仍会以某种方式引发异常,并显示消息“ SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1需要身份验证。有关详细信息,请参见”
[HttpPost]
public ActionResult SaveAppointment(Appointment mdl)
{
try
{
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
smtpClient.Credentials = new System.Net.NetworkCredential("username", "mypass");
smtpClient.UseDefaultCredentials = false;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;
MailMessage mail = new MailMessage();
//Setting From , To and CC
mail.From = new MailAddress("username@gmail.com", "MyWeb Site");
mail.To.Add(new MailAddress("username@gmail.com"));
smtpClient.Send(mail);
return View();
}
catch(Exception ex)
{
return null;
}
}
我应该丢失什么?
答案 0 :(得分:0)
检查您的web.config,msdn和代码(因为配置文件中可能没有匹配的EnableSsl
。
您可能还需要在gmail设置页面中启用对“安全性较低的应用”的访问权限。 here
如果您收到异常消息“`,则服务器响应是:5.5.1需要身份验证。那么下面的代码应该可以工作。”
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("username", "password"),
EnableSsl = true
};
client.Send("username@gmail.com", "username@gmail.com", "subject", "body");