从AWS EC2实例发送电子邮件(SES是强制性的?)

时间:2014-05-23 12:22:30

标签: ruby-on-rails amazon-web-services amazon-ec2 amazon-ses

我写这篇文章只是为了看看我是否可以在AWS EC2实例中得到关于电子邮件发送概念的一些说明。

这与此帖Rails does not send emails on AWS

有关

我正在开发一个向客户发送电子邮件的Rails应用程序(例如确认或信息电子邮件)。

我不确切知道哪个电子邮件服务正在使用Rails。我没有安装任何特定的宝石。但是电子邮件已经在开发环境(Ubuntu)中完美发送。

当我部署到我的生产环境(AWS EC2实例)时。此功能无效。您可以在我上面提供的帖子中看到错误详细信息。该错误与某些smtp connection refused相关。

所以,我已经阅读了其他一些帖子,但我很困惑。是否必须使用AWS SES服务才能从EC2实例发送电子邮件?或者它只是一个与安全凭证相关的问题(也许我只需要打开smtp 25端口)。我是否需要安装任何电子邮件客户端或服务器?

2 个答案:

答案 0 :(得分:18)

从EC2实例发送电子邮件受亚马逊限制,并严格限制在网络级别。这是为了防止垃圾邮件和其他滥用行为。

如果您要向客户发送大量电子邮件,建议的方法是使用Amazon Simple Email Service。使用Amazon SES,您可以发送交易电子邮件,营销信息或任何其他类型的高质量内容,您只需支付使用的费用。

如果您确实需要从EC2实例发送电子邮件,则必须使用弹性IP地址并要求Amazon支持从该EIP中删除对SMTP流量的限制。 联系我们的表格可在https://portal.aws.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request处获得(需要验证)

的Seb

答案 1 :(得分:1)

正如塞巴斯托所写,发送电子邮件是有限的。

https://aws.amazon.com/ec2/faqs/ =>问:从EC2实例发送电子邮件有任何限制吗?

当然它正在运行,你需要检查你是否安装了SMTP,这可能取决于你何时发送你的电子邮件

试试这段代码:

[ec2-user@ip ~]$ irb
irb(main):001:0> require 'net/smtp'
=> true
irb(main):002:0> Net::SMTP.start('localhost') do |smtp|
irb(main):003:1* smtp.send_message 'test from ruby', 'your-email, 'your-email'
irb(main):004:1> end

对于我的(@gmail),它正在运作