我在用 C# 发送电子邮件时遇到了一个严重的问题。这是代码:
SmtpClient newSmpt = new SmtpClient()
{
Host = "smtp.googlemail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential("mail@gmail.com", "password"),
Timeout = 30000
}
string body = 'html body';
String bodyEmail = email.Replace("@", "<span>@</span>");
bodyEmail = bodyEmail.Replace(".", "<span>.</span>");
body = body.Replace("<%email%>", bodyEmail);
body = body.Replace("<%name%>", name);
body = body.Replace("<%name%>", name);
MailMessage mailMessageMox = new MailMessage("mail@gmail.com", "info@mail.it", "Title", body);
mailMessageMox.IsBodyHtml = true;
newSmpt.Send(mailMessageMox);
使用此代码,我设法正确发送邮件。有时我会从 Send 方法中捕捉到一条异常消息:“smtp 服务器需要安全连接或客户端未通过身份验证”。如您所见,EnableSsl 属性设置为 true,如其他帖子中所述。当我去 gmail 并尝试使用代码中使用的凭据登录时,它要求我输入验证码。输入验证码后,我可以登录,然后代码工作正常。问题是这种情况可能发生太多次。
如何阻止在gmail中询问验证码?