2

Heroku と SendGrid でメールを設定していますが、Rails でメールを送信しようとすると、次のエラーが発生します。

Net::SMTPFatalError (550 Cannot receive from specified address <my-email@domain.com>: Unauthenticated senders not allowed
2013-06-01T10:52:34.767516+00:00 app[web.1]:   app/controllers/api/v1/post_controller.rb:84:in `reply'

このドメイン「my-email@domain.com」は、メーラーの「デフォルトの差出人」フィールドから取得されます。

class NotificationMailer < ActionMailer::Base
  default from: "my-email@domain.com"

  def post_notification_email(params)
    # Send mail here
  end
end

私の大きな問題は、ここに正確に何を入力すればよいかわからないことです。これは私のメールアドレスであるべきですか?それは私のドメインである必要がありますか? それは私の Heroku メールですか? 私のSendGridメール? SendGrid を満足させるために何をすべきかまったくわかりません。この行を削除し、何かが埋められることを期待しても、エラーが発生しました。私は立ち往生しています。他の人は「デフォルトから」に何を使用していますか?

重要な場合に備えて、もう 1 つ: これはすべてまだ開発中であるため、ドメインには接続していません。また、SendGrid アカウントも実際には作成していません。SendGrid アドオンを Heroku のアプリに追加しただけです。

更新:本番用のアクションメーラー構成を投稿:

ActionMailer::Base.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '25',
    :authentication => :plain,
    :user_name      => ENV['SENDGRID_USERNAME'],
    :password       => ENV['SENDGRID_PASSWORD'],
    :domain         => 'domain.com',
    :enable_starttls_auto => true
  }
4

1 に答える 1

0

action_mailer が適切に構成されていることを確認します ( config/production.rb ):

  # Sendgrid
  config.action_mailer.smtp_settings = {
    address: "smtp.sendgrid.net",
    port: 25,
    domain: "example.com",
    authentication: "plain",
    user_name: ENV["SENDGRID_USERNAME"],
    password: ENV["SENDGRID_PASSWORD"]
  }

ドメインパラメータを変更することを忘れないでください。次のように (ターミナルで) sendgrid を heroku アプリに追加します。

heroku addons:add sendgrid:starter

変更をコミットし、アプリケーションを heroku にデプロイします。以前に定義したドメインからメールを送信できるはずです。

于 2013-06-01T13:13:18.527 に答える