如何使用C#

时间:2018-12-04 12:50:12

标签: c# email smtp gmail

使用C#从个人gmail地址发送电子邮件是一个非常常见的问题。互联网上有数百个与此相关的线程。我的问题是从我的g-suite帐户(info@mydomain.com)发送电子邮件。我尝试了以下步骤

  1. 允许在Gmail中使用不太安全的应用 enter image description here
  2. 通过以下代码发送电子邮件

       SmtpClient client = new SmtpClient(FINAPApplicationSettings.SmtpServer, FINAPApplicationSettings.SmtpServerPort);
        client.UseDefaultCredentials = false;
        client.EnableSsl = true;
        client.Credentials = new NetworkCredential("info@mydomain.com", "email password");
        MailMessage mailMessage = new MailMessage();
        mailMessage.From = new MailAddress("info@mydomain.com");
        mailMessage.To.Add("receiver@receiverdomain.com");
        mailMessage.IsBodyHtml = true;
        mailMessage.Body = "Email Body";
        mailMessage.Subject = "FINAP REGISTRATION VERIFICATION";
    

尝试发送电子邮件时,我收到此异常。 “ SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.5.1需要身份验证” 我从azure购买了该域(mydomain.com)。这个不是g-suite的管理员帐户。但是我可以访问管理员帐户。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我刚刚在我的公司G-Suite帐户上测试了您的代码。

在允许用户管理自己的设置之后,您需要确保NetworkCredential对象中提供的用户名已配置为“允许安全性较低的应用程序”。您可以通过以下方式获得它:

  1. 使用户能够管理自己的设置(您已经完成了此操作)
  2. (在这种情况下)转到info@mydomain.com的{​​{3}}。
  3. 点击“登录和安全”
  4. 滚动到底部,并确保滑块处于打开状态。

第一步可能需要一些时间才能传播到G-Suite中的所有用户。

注意:如果密码或用户名不正确,也会出现此错误。

如果您已完成上述所有操作,但仍然无法使用,则可能需要在DNS设置中配置SPF。参见Google Account Page