7

heroku アプリの送信グリッド スターターをセットアップします。

これをconfig/environment.rbに入れました:

ActionMailer::Base.smtp_settings = {
  :user_name => ENV["SENDGRID_USERNAME"],
  :password => ENV["SENDGRID_PASSWORD"],
  :domain => "my-sites-domain.com",
  :address => "smtp.sendgrid.net",
  :port => 587,
  :authentication => :plain,
  :enable_starttls_auto => true
}

このクラス models/notifier.rb を作成します:

class Notifier < ActionMailer::Base

  def notify()
    mail( 
      :to => "my-email@gmail.com",
      :subject => "New Website Contact",
      :body => "body",
      :message => "message",
      :from => "website@my-sites-domain.com"
    )
  end

end

これを別のコントローラーに入れて、メールを送信します。

def contact
  Notifier.notify().deliver
  redirect_to("/", :notice => "We Have Received Your Request And Will Contact You Soon.")
end

デプロイしてメールを送信しようとすると、次のエラーが発生します。

Net::SMTPAuthenticationError (535 認証に失敗しました: 不正なユーザー名/パスワード

送信グリッドを完全にセットアップしましたが、メールを送信する準備ができていると表示されます。

またheroku config --long、実際のパスワードとユーザー名を取得するために実行し、それらをハードコーディングしましたが、それでも同じエラーが発生しました。

4

2 に答える 2

3

次のコマンドでパスワードを設定しようとしました:

heroku config:add SENDGRID_PASSWORD=my-new-password

しかし、これはherokuがパスワードとして保存したものを変更するだけで、実際にはパスワードを変更しないことがわかりました。これを行った後、パスワードを取得することもできません。

私がしなければならなかったのは、 sendgrid アドオンを削除して再度追加することでした。

于 2012-04-07T21:47:10.990 に答える