我正在尝试通过Padrino中的sendmail发送电子邮件。我完成了指定here的配置(配置和快速使用)
但是我总是在服务器日志中出现以下错误(在Heroku或localhost上):
app[web.1]: sh: Illegal option -
app[web.1]: Errno::EPIPE - Broken pipe:
我安装了mail gem
,我正在使用Padrino 0.10.7
我正在使用它,发送电子邮件:
post :create do
email(:from => "tony@reyes.com", :to => "john@smith.com", :subject => "Welcome!", :body=>"Body")
end
这几乎就是我所有的......
答案 0 :(得分:5)
你应该使用其中一个parter插件与Heroku一起发送邮件。
一个很好的选择是Sendgrid
heroku addons:add sendgrid:starter --app=your_app_name
然后在App类中的app.rb中的Padrino应用程序中:
set :delivery_method, :smtp => {
:address => "smtp.sendgrid.net",
:port => 587,
:domain => 'heroku.com',
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:authentication => :plain,
:enable_starttls_auto => true
}
您可以将这些替换为其他外部SMTP服务器的设置,或者查看Mandrill以获取交易电子邮件。
我怀疑您看到的Errno :: EPIPE错误是无法连接到有效的SMTP服务器,所以您的控制器代码应该没问题。
答案 1 :(得分:0)
set :delivery_method, :smtp => {
:address => "smtp.domain.com",
:port => 587,
:domain => 'rails.domain.com',
:user_name => "rails@domain.com",
:password => "super-secret",
:authentication => "plain",
:enable_starttls_auto => true,
:openssl_verify_mode => OpenSSL::SSL::VERIFY_NONE
}