我正在尝试使用 .NET Core 中的 SmtpClient 通过 AWS WorkMail 发送标准电子邮件。根据亚马逊文档,配置非常标准: https ://docs.amazonaws.cn/en_us/general/latest/gr/workmail.html
"Smtp": {
"MailServer": "smtp.mail.eu-west-1.awsapps.com",
"MailPort": "465",
"SenderName": "Us us us",
"FromAddress": "email@domain.com",
"Username": "email@domain.com",
"Password": "Password1$",
"EnableSsl": "true"
},
注入设置并正确实例化 SmtpClient 并且发送电子邮件只是:
var mail = new MailMessage
{
From = new MailAddress(_smtpSettings.FromAddress, _smtpSettings.SenderName),
SubjectEncoding = Encoding.UTF8,
BodyEncoding = Encoding.UTF8,
IsBodyHtml = true,
Body = message,
Subject = subject,
Priority = MailPriority.High
};
mail.To.Add(new MailAddress(sendToEmail));
_smtpClient.Send(mail);
可悲的是,发送总是因网关超时而失败。我们尝试为 STARTTLS 切换为 587,并提供不带域 (@) 的用户名。发送服务器安装了正确的 SSL 证书,而邮件服务器正是我们的 smtp 所在的服务器。虽然这不是一个相关的解决方案,但我也将超时时间增加到 10 秒(即使这不是一个解决方案)。
知道有什么问题吗?我已经在扯头发了。似乎是 AWS WorkMail 的问题。