【发布时间】:2022-12-15 18:29:36
【问题描述】:
我正在尝试发送电子邮件以确认帐户,但我在 SMTP 端遇到了问题。
我之前看到有人遇到过这个问题,他们通过启用“安全性较低的应用程序登录”来解决这个问题,但谷歌将其作为一项功能删除了。
EmailSender.cs
public bool SendEmail(string userEmail, string confirmationLink)
{
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("employmentlyy@gmail.com");
mailMessage.To.Add(new MailAddress(userEmail));
mailMessage.Subject = "Confirm your email";
mailMessage.IsBodyHtml = true;
mailMessage.Body = confirmationLink;
var emailPass = _config["emailPassword"];
SmtpClient client = new SmtpClient();
client.Credentials = new System.Net.NetworkCredential("employmentlyy@gmail.com", emailPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Host = "smtp.gmail.com";
client.UseDefaultCredentials = true;
client.EnableSsl = true;
client.Port = 587;
try
{
client.Send(mailMessage);
Console.WriteLine("Sent email!");
return true;
}
catch (SmtpFailedRecipientException ex)
{
// log exception
}
return false;
}
我试图将 UseDefaultCredentials 更改为 false 并更改端口,但似乎没有任何效果。
【问题讨论】:
-
您看到documentation 中的“重要”提示了吗?不应再使用 SmtpClient。
-
@Flydog57 是的,还是不行。
-
顺便说一句,包含指向support.google.com/accounts/answer/6010255 的链接会很好吗? (上面粉红色框的可能来源)。这样,我们就可以在上下文中阅读它,而无需输入您发布的图片的内容。您可能还提到您已经尝试了我的建议但没有帮助(并展示您尝试过的)