【发布时间】:2011-11-02 00:29:09
【问题描述】:
我已经对此问题进行了大量研究,但未能解决我的问题。我正在使用 Rails 3.0.3、Ruby 1.8.7(补丁级别 334)、Apache、Passenger 3.0.7 和 Devise gem 1.1.8。另外,我正在使用 gmail 发送电子邮件。当我尝试发送密码重置时,我的 Apache error_log 中出现错误:
[2011 年 11 月 1 日星期二 19:40:31] [错误] 脚本头过早结束:用户 [ pid=9371 thr=3084437904 file=ext/apache2/Hooks.cpp:822 time=2011-11-01 19:40:31.664 ]:后端应用程序(进程 9569)没有发送有效的 HTTP 响应;相反,它什么也没发送。它可能已经崩溃了;请检查此应用程序是否存在崩溃错误。
根据我的研究,我发现一个原因可能是因为 Ruby on Rails 正在寻找一个有缺陷的 OpenSSL 版本。我尝试了将其添加到我的 .bashrc 文件的建议:
导出 RUBYOPT="-ropenssl"
另外,我尝试在我的 production.rb 中更新我的 SMTP 配置以不使用 TLS:
:enable_starttls_auto => 假
我的完整 SMTP 配置:
config.action_mailer.default_url_options = { :host => '<domain>' }
ActionMailer::Base.smtp_settings = {
:enable_starttls_auto => false,
:address => "smtp.gmail.com",
:port => 587,
:domain => <domain>,
:user_name => <username>,
:password => <password>,
:authentication => "plain"
}
我发现的所有建议似乎都没有奏效。我不确定从这里去哪里,因为这些是我找到的唯一建议和修复。它在我的开发机器上没有任何问题。除了我在本地不使用的 Apache/Passenger 之外,它运行的是上述所有版本的相同版本。
迈克
【问题讨论】:
标签: ruby-on-rails ruby smtp devise gmail