我正在尝试使用c#使用以下函数发送电子邮件:
public static void SendEmail(string fromAddress, string password)
{
SmtpClient email = new SmtpClient
{
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
EnableSsl = true,
Host = "smtp.gmail.com",
Port = 587,
Credentials = new NetworkCredential(fromAddress, password)
};
string subject = "Mail subject";
string body = "Body";
try
{
Console.WriteLine("Sending email...");
email.Send(fromAddress, GetToAddress(), subject, body);
} catch (SmtpException e)
{
Console.WriteLine(e.Message);
}
}
我看到为了让它工作,我需要在我的gmail帐户上启用不太安全的应用程序。然而,根据谷歌的说法,为了保护你的账户安全,从2022年5月30日起,谷歌不再支持使用第三方应用程序或设备,这些应用程序或设备只要求你使用用户名和密码登录你的谷歌账户。"。还有其他邮寄方式吗?
你可以在Google帐户上启用双因素认证,然后创建一个应用程序密码
如何创建应用程序密码
这将生成16个字符的"App密码"。然后使用之前使用的完全相同的代码,将标准用户Gmail密码替换为应用程序密码。
,
SendEmail("Nave@gmail.com", "iodwsurnuyjfsxdc") // here iodwsurnuyjfsxdc means app password and Nave@gmail.com means app pass generated account email