1

gem Active Admin を使用して、サインアップしたユーザーにメールを送信し、パスワードを作成できるようにしようとしています。

これには、config/environments/development.rb に次のコードを挿入するプロセスが必要です。

 #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          => 'XXX@gmail.com',
   :password           => 'XXXX'
 }

これは問題なく動作します

Heroku 上の本番サイトへのデプロイ用。次のコードを config/environments/production.rb に挿入しました

 #Added per active admin install instructions
 config.action_mailer.default_url_options = { :host => 'http://XXXX.herokuapp.com/' }

 #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          => 'XXX@gmail.com',
   :password           => 'XXX'
 }

しかし、今ではメールは送信されません。代わりに、ブラウザに「申し訳ありませんが問題が発生しました」というメッセージが表示され、ログには次の行が表示されます

2012-08-17T17:39:34+00:00 app[web.1]:     cache: [GET /admin/admin_users/new] miss

2012-08-17T17:39:34+00:00 app[web.1]: Started POST "/admin/admin_users" for   96.49.201.234 at 2012-08-17 17:39:34 +0000
2012-08-17T17:39:35+00:00 app[web.1]: Net::SMTPAuthenticationError (535-5.7.1 Please log   in with your web browser and then try again. Learn more at

2012-08-17T17:39:35+00:00 app[web.1]: ):
2012-08-17T17:39:35+00:00 app[web.1]:   app/models/admin_user.rb:35:in `block in <class:AdminUser>'

2012-08-17T17:39:35+00:00 app[web.1]: cache: [POST /admin/admin_users] invalidate, pass

ここからどこへ行けばいいですか?誰か手を貸してくれませんか

4

4 に答える 4

1

Gmailの便利なヘルプは次のとおりです:http ://support.google.com/mail/bin/answer.py?hl = en&answer = 14257&p=client_login 。

問題は、Gmailがロボットである可能性のある疑わしいサインインの試みを防ぐことです。アプリがGoogleアカウントを使用してメールを送信できるように、アプリに権限を付与する必要があります。

于 2013-02-26T04:18:46.173 に答える
0

Gmail では、メール サーバーへの SSL 接続が必要です。これをSMTP設定に追加してみてください:

:enable_starttls_auto => true
于 2012-08-17T20:10:27.840 に答える
0

次のコードを試してください:

 ActionMailer::Base.smtp_settings = 
 {

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

行われた変更:
1.:authentication => :actionから:authentication => 'plain'
2. が追加されまし:enable_starttls_auto => trueた。上記の janders223 によってコメントされています。

于 2012-10-10T14:26:02.873 に答える