【发布时间】:2012-01-24 09:21:02
【问题描述】:
我有一个 Rails 应用程序配置为通过 SMTP 使用 Amazon SES。但是,当我尝试发送电子邮件时,它似乎在一分钟后超时,并且我收到了 EOFError。闻起来像是配置问题——电子邮件似乎构造良好,我可以从 AWS SES 控制台向自己发送测试电子邮件。这是在沙盒模式下,应用程序在开发模式下运行,但发送和接收电子邮件都已通过 SES 验证,并且 development.rb 是这样设置的:
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
我已经尝试了一百万种配置变体;这开始让我发疯了。任何帮助或指导将非常非常感激。更多详情:
我在初始化程序中的 smtp 配置:
ActionMailer::Base.smtp_settings = {
:address => "email-smtp.us-east-1.amazonaws.com",
:port => "465",
:authentication => :plain,
:enable_starttls_auto => true,
:user_name => "1234",
:password => "abcde"
}
有错误的日志,为简洁起见被截断:
Sent mail to john@phu.com (59929ms)
Date: Tue, 20 Dec 2011 03:08:37 -0800
From: contact@phu.com
To: john@phu.com
Message-ID: <4ef06cb5ed3c_d73c3fc604c34d4491943@Johns-MacBook-Pro.local.mail>
Subject: Your invitation to Phu
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
<!DOCTYPE html>
....
Completed 500 Internal Server Error in 60564ms
EOFError (end of file reached):
app/controllers/admin_controller.rb:61:in `block in send_invite'
app/controllers/admin_controller.rb:46:in `send_invite'
【问题讨论】:
-
您的 ISP 是否允许端口 465 上的出站连接?您可以将您的亚马逊 smtp 凭证与普通邮件客户端一起使用吗?
-
你让它工作了吗?因为我有同样的问题...
-
还没有开始工作——最终通过 smpt 使用 Gmail,这暂时已经足够好了。我将在下面尝试 Mihir 的解决方案并报告(如果可行,请接受答案)。 Frederick,我可以在 Rails 之外使用 smtp——这是我自己的服务器实例,端口是开放的。
标签: ruby-on-rails smtp amazon-web-services amazon