18

ユーザーにメールを送信するためにメーラーを使用して、パスワードをDeviseおよびアクティブな管理者の「回復可能な」機能に設定する必要があります。開発環境では、これらのファイルに以下を追加してこれを行いました。

config / environment / development

#Added per active admin install instructions
config.action_mailer.default_url_options = { :host => 'localhost:3000' }


#These settings are for the sending out email for active admin and consequently the   devise mailer
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = 
{

  :address            => 'smtp.gmail.com',
  :port               => 587,
  :domain             => 'gmail.com', #you can also use google.com
  :authentication     => :plain,
  :user_name          => 'XXXXX@gmail.com',
  :password           => 'XXXXXXX'
}

実稼働環境で同じ機能を取得するにはどうすればよいですか?アプリをHerokuにデプロイしたい。どのファイルとコードを追加する必要がありますか?

4

3 に答える 3

12

デフォルトのメーラーURLを再構成する必要がある場合を除いて、開発モードで設定したすべての構成が機能します。

それで。

  1. development.rbから設定をコピーして貼り付けます。

  2. デフォルトのメーラーをherokuアプリにポイントします。

    config.action_mailer.default_url_options = { :host => 'YOURAPPNAME.herokuapp.com' }
    

また、本番環境に移行するときにSMTPが持つ可能性のある電子メールの制限に注意してください。たとえば、開発中にgmailのSMTP制限をトリガーするのは困難ですが、本番環境ではより簡単にトリガーできます。

于 2014-05-26T22:05:37.270 に答える
4

開発モードで動作する場合は、本番モードで動作します。

すべてが正しく設定されていると仮定すると、開発中にパスワードをリセットすると、Gmailアカウントを使用して実際のメールが送信されます。

Deviseは、メーラーの構成セットアップ(これはあなたが行った)と、パスワードのリセットを許可するようにdeviseを構成すること、そして場合によっては電子メールのFromフィールドの別の設定にのみ依存します。

于 2012-08-17T00:51:02.523 に答える
4

これはうまくいくはずです!

config / environment/production.rbに例外を除いて同じものがある限り。default_url_optionsの:host値は、開発時のみ「localhost」、heroku本番環境では「YOURAPPNAME.herokuapp.com」である必要があります。

すなわち

config.action_mailer.default_url_options = { :host => 'YOURAPPNAME.herokuapp.com' }

Gmailでキャプチャのロックを解除することを忘れないでください。そうしないと、heroku(不明なソース)からメールが送信されません。あなたはこのリンクに行くことによってそれをすることができます:http ://www.google.com/accounts/DisplayUnlockCaptcha

提案として、environments.rbからこれを移動すると思います

ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true

場所はenvironments/development.rbにあります

config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true

本番環境では必要ありません。

gmailがherokuを不明なホストと見なす方法の詳細については、Railsアプリ(ステージング環境)からメールを送信するときのNet::SMTPAuthenticationErrorを参照してください。

于 2015-07-30T14:23:34.867 に答える