AWS 简单电子邮件服务适用于本地主机,但不适用于生产 EC2 服务器

Kam*_* N. 3 amazon-ec2 amazon-web-services amazon-ses aws-sdk .net-core

所以我正在为我的网站开发邮件 API。场景如下:

  1. 客户连接到端点。
  2. API 端点使用邮件服务(基于 aws sdk)处理请求和发送电子邮件。
  3. API 根据结果返回 Ok/BadRequest。

当我使用在 localhost 上运行的 API 执行此操作时,一切正常,并且我按预期在我的邮箱上收到电子邮件。但是当我在 Amazon EC2 实例上运行我的 API 服务时,我得到了这个:

响应状态码不表示成功:404(未找到)

我仔细检查了我的本地主机和 EC2 实例(ubuntu 16.10)上是否有 .aws/credentials 文件。我可以很好地访问在 EC2 实例上运行的 API 服务,因为我收到了 BadRequest 响应。问题是当邮件服务尝试使用亚马逊 SES 发送电子邮件时。我相信这不是代码本身,因为它在本地主机上运行良好。有任何想法吗?

小智 5

如果其他人有同样的问题,更改为端口 587 解决了问题。

默认情况下,EC2 对端口 25 有非常严格的限制。您可以通过填写正式请求逐个 IP 地列入白名单,但如果您要发送到 SES,我们建议使用端口 587 或 2587。

有关端口 25 上 EC2 节流阀的更多信息:https : //aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/

有关 SES 可用 SMTP 端口的更多信息:https : //docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-connect.html