【问题标题】:C# sending mail with gmail account works locally but not onlineC# 使用 gmail 帐户发送邮件在本地工作,但不能在线
【发布时间】:2021-01-29 09:12:28
【问题描述】:

我有一个带有电子邮件客户端的 .net 核心应用程序。 本地工作一切正常,邮件是带附件发送的,但是当我部署我的 API 时,我在尝试发送电子邮件时总是收到同样的错误。

这是我的代码。 api 从应用设置文件中接收了我的所有设置。

 cigarMsg.IsBodyHtml = true;

            var mailClient = new SmtpClient(_config.GetValue<string>("SMTPHost"), _config.GetValue<int>("SMTPPort"))
            {
                UseDefaultCredentials = false,
                Credentials =
                new NetworkCredential("rokokoen@gmail.com", _config.GetValue<string>("PasswordSender")),
                EnableSsl = true
            };

            writer.Write(orderPdf);
            writer.Flush();
            
            memoryStream.Position = 0;
            var attachment = new Attachment(new MemoryStream(orderPdf), "Bestelling-bvbaRomboutEdiers.pdf", System.Net.Mime.MediaTypeNames.Application.Pdf);
            cigarMsg.Attachments.Add(attachment);

            try
            {
                mailClient.Send(cigarMsg);
                memoryStream.Dispose();
                writer.Dispose();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Log.Error(e, "Host terminated unexpectedly.");
                throw;
            }

我的 API 的应用设置

我知道 SMTPPort 应该是一个 int,但我将类型转换为 int,正如您在我的代码中看到的那样。 是的,这在本地工作。

我还搜索了以前的 Stackoverflow 问题,但没有任何效果。 我尝试了其他堆栈溢出问题的所有方法,但没有任何帮助。

我收到的错误是:

这是我尝试执行发送邮件方法时的错误。

有没有人可以帮我解决这个问题?

【问题讨论】:

  • 是同一台电脑吗?如果不是,另一台 PC 允许使用什么版本的 TLS?
  • 我假设您使用的是同一个电子邮件帐户,当它工作和不工作时。指示您未与邮件服务器建立连接的错误。因此,当您部署应用程序时,您所在的网络不允许连接完成。使用 SMTP,许多拥有电子邮件服务器的公司使用端口转发将所有电子邮件转发到代理服务器。转发在防火墙处完成,防火墙检查所有 TCP 消息的端口号并将消息重定向到代理。您的代码不适用于在线网络。
  • 是的,正确,在本地和在线使用相同的帐户,也在同一台电脑上。

标签: c# .net-core gmail smtpclient


【解决方案1】:

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证:

解决方案按可能提供帮助的顺序排列。

  1. 检查用户是否启用了 2fa,如果是,则需要 apps password
  2. 检查您的Captcha loc
  3. 查看Xoauth2

【讨论】:

    【解决方案2】:

    显然,使用 Gmail 帐户比使用 Hotmail 帐户要困难得多。 所以我切换了我的 SMTP 主机和端口。

    现在可以发送电子邮件了。

    感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 2018-07-11
      • 1970-01-01
      相关资源
      最近更新 更多