C# - 通过 Gmail 或其他方式发送电子邮件
本文关键字:方式发 电子邮件 其他 通过 Gmail | 更新日期: 2023-09-27 18:33:17
服务器: VDS
操作系统: 视窗服务器 2008 R2
应用:无
库(应用程序使用的 DLL(:是,C#
我正在尝试使用我阅读的内容通过 C# 发送邮件,gmail 服务。基本上,只是给自己的一封测试电子邮件将是知道它工作的开始。如果你必须问,信息存储在config.json文件中,而不是直接存储在代码中,因此"AccountRecovery.AccountRecoveryConfig"。
我似乎无法让它工作!使用某些端口时,我收到不同的错误!
端口 465 - 带凭据错误:
2016-02-05 02:52:33 - 命令: 错误: 系统.Net.Mail.Smtp异常: 发送邮件失败。 ---> 系统.IO.IOException: 无法从传输连接读取数据: net_io_connectionclosed.
端口 587 - 带凭据错误:
2016-02-05 02:55:50 - 命令: 错误: System.Net.Mail.Smtp异常: SMTP 服务器需要安全连接或客户端未经过身份验证。服务器响应为:5.5.1 需要身份验证。欲了解更多信息,请访问
我不知道该怎么办。我做错了什么吗?
public static void SendEmail(string email)
{
MailMessage mail = new MailMessage(AccountRecovery.AccountRecoveryConfig.ServerEmailAddress, email);
SmtpClient client = new SmtpClient();
client.Timeout = 30000;
client.Host = AccountRecovery.AccountRecoveryConfig.HostSMTPServer;
client.Port = AccountRecovery.AccountRecoveryConfig.HostPort;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(AccountRecovery.AccountRecoveryConfig.ServerEmailAddress, AccountRecovery.AccountRecoveryConfig.ServerEmailPassword);
client.EnableSsl = true;
//client.ServicePoint.MaxIdleTime = 1;
mail.Subject = AccountRecovery.AccountRecoveryConfig.EmailSubjectLine;
mail.Body = AccountRecovery.AccountRecoveryConfig.EmailBodyLine;
mail.IsBodyHtml = false;
client.Send(mail);
}
谷歌的正确端口是 587,这个错误:
2016-02-05 02:55:50 - 命令: 错误: 系统.Net.Mail.Smtp异常: SMTP 服务器需要安全连接或客户端不需要 认证。服务器响应为:5.5.1 需要身份验证。 欲了解更多信息,请访问
您应该授予对安全性较低的应用程序的访问权限。这是您可以为当前登录的Google帐户执行此操作的链接。