所以我正在为我的网站开发一个邮件 API。场景如下:
- 客户连接到端点。
- API 端点处理请求并使用邮件服务(基于 aws sdk)发送电子邮件。
- API 根据结果返回 Ok/BadRequest。
当我使用在本地主机上运行的 API 执行此操作时,一切正常,并且我在我的邮箱中按预期接收电子邮件。但是当我在 Amazon EC2 实例上运行我的 API 服务时,我得到了这个:
Response status code does not indicate success: 404 (Not Found)
我仔细检查了我的本地主机和 EC2 实例 (ubuntu 16.10) 上是否都有 .aws/credentials 文件。我可以很好地访问在 EC2 实例上运行的 API 服务,因为我收到了 BadRequest 响应。问题是当邮件服务尝试使用亚马逊 SES 发送电子邮件时。我相信这不是代码本身,因为它在本地主机上运行良好。有什么想法吗?
最佳答案
万一其他人有同样的问题,更改为端口 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
关于amazon-web-services - AWS 简单电子邮件服务适用于本地主机,但不适用于生产 Amazon EC2 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51694628/