【问题标题】:Not able to send mails using Gmail SMTP in C#无法在 C# 中使用 Gmail SMTP 发送邮件
【发布时间】:2015-07-25 07:30:29
【问题描述】:
mailMessage.From = new MailAddress(fromEmailAddress);
        mailMessage.Subject = "Test";
        mailMessage.Body = "Manish";
        mailMessage.IsBodyHtml = true;
        mailMessage.To.Add(new MailAddress(toEmailAddress));
        SmtpClient smtp = new SmtpClient("smtp.gmail.com", 465);          
        smtp.EnableSsl = true;
        System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
        NetworkCred.UserName = userNAme;
        NetworkCred.Password = password;
        smtp.UseDefaultCredentials = true;
        smtp.Credentials = NetworkCred;
        smtp.Send(mailMessage);

我正在尝试配置 Gmail SMTP 并尝试使用 TSL 和 SSL,但上面的代码总是抛出 TimeOut 异常

【问题讨论】:

标签: c# asp.net smtp


【解决方案1】:

我认为您需要将 usedefaultcredentials 设置为 false。否则将不会使用您在网络凭据中设置的用户名/密码。

【讨论】:

    【解决方案2】:

    您不想将 SmtpClient 的 UseDefaultCredentials 设置为 true,因为它将使用当前登录用户的凭据,根据 https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.usedefaultcredentials%28v=vs.110%29.aspx

    此外,通过 web.config 配置设置可能更有意义,因为任何更改都不需要重新编译和部署代码。类似问题在这里回答:Send Email via C# through Google Apps account

    如果您选择将 smtp 设置保留在代码中,则应如下所示:

    mailMessage.From = new MailAddress(fromEmailAddress);
    mailMessage.Subject = "Test";
    mailMessage.Body = "Manish";
    mailMessage.IsBodyHtml = true;
    mailMessage.To.Add(new MailAddress(toEmailAddress));
    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 465);          
    smtp.EnableSsl = true;
    smtp.Credentials = new System.Net.NetworkCredential(userNAme, password);
    smtp.Send(mailMessage);
    

    【讨论】:

      猜你喜欢
      • 2014-09-13
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2018-09-13
      • 2016-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多