【发布时间】: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