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);
    }

C# - 通过 Gmail 或其他方式发送电子邮件

谷歌的正确端口是 587,这个错误:

2016-02-05 02:55:50 - 命令: 错误: 系统.Net.Mail.Smtp异常: SMTP 服务器需要安全连接或客户端不需要 认证。服务器响应为:5.5.1 需要身份验证。 欲了解更多信息,请访问

您应该授予对安全性较低的应用程序的访问权限。这是您可以为当前登录的Google帐户执行此操作的链接。