Ruby on rails 在哪里可以阅读完整的手册来为Rails配置SMTP?
我是Rails的新手,我有一些问题。 我用Desive插件安装了一个简单的应用程序,通过Capistrano将它部署到生产服务器(Linode上的Ubuntu,nginx+passenger)上。现在尝试发送电子邮件(密码恢复、电子邮件确认等) 但它确实起了作用 我在/environments/production.rb中有这些行Ruby on rails 在哪里可以阅读完整的手册来为Rails配置SMTP?,ruby-on-rails,devise,smtp,actionmailer,exim4,Ruby On Rails,Devise,Smtp,Actionmailer,Exim4,我是Rails的新手,我有一些问题。 我用Desive插件安装了一个简单的应用程序,通过Capistrano将它部署到生产服务器(Linode上的Ubuntu,nginx+passenger)上。现在尝试发送电子邮件(密码恢复、电子邮件确认等) 但它确实起了作用 我在/environments/production.rb中有这些行 config.action_mailer.default_url_options = { :host => "myhostname.com" } con
config.action_mailer.default_url_options = { :host => "myhostname.com" }
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
当我尝试从我的应用程序发送电子邮件时,我收到500个错误:“很抱歉,但出了问题。
“(由乘客)。
在log/production.log中
Net::SMTPServerBusy (451 4.3.0 Temporary system failure. Please try again later.)
我使用exim4作为邮件服务器。我还尝试安装sendmail并进行更改
config.action_mailer.delivery_method = :sendmail
电子邮件开始发送,但应用程序工作非常缓慢
所以,我的问题是:我需要如何处理我的问题,以及在哪里可以阅读完整的手册或文档来配置exim4以使用rails应用程序
谢谢。根据ActionMailer官方文件第5章和第5.1章: 我们可以看到,没有“:exim4”选项可用作“delivery\u method” 所以我建议“欺骗”ActionMailer,他正在使用sendmail(尽管他将使用exim4)。 在config/environments/production.rb文件中使用以下配置:
config.action_mailer.delivery_method = :sendmail
config.action_mailer.sendmail_settings = {
:location => '/usr/sbin/exim4',
:arguments => '-i'
}
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
参数与以下exim4选项匹配:
- -t选项使邮件的收件人从邮件中的收件人:、抄送:、密件抄送::标题行获取,而不是从 从命令参数
- -i选项防止仅包含点的行终止消息。只有文件的结尾才会这样做
Errno::ECONNREFUSED (Connection refused - connect(2) for "localhost" port 25)
所以我删除了-t选项,因为rails不再在消息中包含To:字段,而是在命令行中发送它
我发现其他开发人员在这个应用程序上也有类似的问题:
我希望这能帮助人们让rails与exim4一起工作。Debian 8+Rails4.2.6+Exim版本4.84\u 2 我在config/environments/production.rb文件中添加了: 并从delivery_方法和sendmail_设置参数中清除(注释): 这就是工作
对我来说,道格拉斯的答案不起作用。exim4能自己工作吗?i、 没有Rails应用程序?试着将它与普通的电子邮件客户端(如Thunderbird)一起使用,看看它是否有效。是的,exim有效。我试着回应“这是一个测试。”| mail-s测试someone@somedomain.com. 事实上,我不记得我到底做了什么,但问题已经解决了。我想我只是重新启动ubuntu。
config.action_mailer.default_options = { from: 'mybox@hostname.com' }
config.action_mailer.default_url_options = { host: 'hostname.com' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
# config.action_mailer.delivery_method = :sendmail
# config.action_mailer.sendmail_settings = {
# :location => '/usr/sbin/exim4',
# :arguments => '-i'
# }