21

Rails アプリでメールを送信しようとしています。Gmail を使用すると機能しますが、Mandrill を使用すると機能しません。Mandrill でこのタイムアウト エラーが発生しています。私が間違っているのかわかりません。Gmail と Mandrill の両方で、環境変数を使用してユーザー名とパスワード/api_key を設定しています。2 つのセットアップの唯一の違いは、以下に示す内容です。何か案は?

Timeout::Error in RegistrationsController#create

execution expired
Rails.root: /Users/michaeljohnmitchell/Sites/pre

Application Trace | Framework Trace | Full Trace
app/models/user.rb:38:in `send_welcome_email'

マンドリルが効かない

config.action_mailer.smtp_settings = {
  :address   => "smtp.mandrillapp.com",
  :port      => 25,
  :user_name => ENV["MANDRILL_USERNAME"],
  :password  => ENV["MANDRILL_API_KEY"]
}

Gmail の動作

config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
 authentication: "plain",
  enable_starttls_auto: true,
  user_name: ENV["GMAIL_USERNAME"],
  password: ENV["GMAIL_PASSWORD"]
}
4

2 に答える 2

37

マンドリルにポート587を使用してください。私にも同じことが起こりました:)

これは、ポート 25 がプレーン テキストを送信し、ポート 587 が SSL エンコードされた電子メールを送信するためです (これはマンドリルのアイデア全体だと思います)。

例でポート 25 に設定した理由がわかりません。

于 2012-07-16T21:03:59.610 に答える