5

Padrinoでsendmail経由でメールを送信しようとしています。ここで指定した構成を行いました(構成クイック使用法

しかし、サーバーログ(Herokuまたはlocalhost)で常に次のエラーが発生します。

app[web.1]: sh: Illegal option - 
app[web.1]: Errno::EPIPE - Broken pipe:

をインストールし、mail gemPadrino0.10.7を使用しています

私はこれを使用して、電子メールを送信します:

post :create do
  email(:from => "tony@reyes.com", :to => "john@smith.com", :subject => "Welcome!", :body=>"Body")
end

それは事実上私が持っているすべてです...

4

2 に答える 2

5

Herokuでメールを送信するには、parterアドオンの1つを使用する必要があります。

良いオプションは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サーバーに接続できなかったため、コントローラーコードはそのままで問題ないはずです。

于 2013-04-03T07:19:49.367 に答える
0

パットは正しいです。アドオンは必要ありません。stefが提案するようにapp.rbを構成するだけで、準備は完了です。たとえば、Gmailを使用すると、設定は次のようになります。

  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
  }
于 2013-09-19T15:56:59.510 に答える