bootcamp icon indicating copy to clipboard operation
bootcamp copied to clipboard

[退会] 存在しないメールアドレスだと退会に失敗する

Open komagata opened this issue 3 years ago • 2 comments


Postmark::InactiveRecipientError: You tried to send to a recipient that has been marked as inactive.
Found inactive addresses: [email protected].
Inactive recipients are ones that have generated a hard bounce, a spam complaint, or a manual suppression. 
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/http_client.rb", line 78, in handle_response
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/http_client.rb", line 92, in block in do_request
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/http_client.rb", line 91, in synchronize
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/http_client.rb", line 91, in do_request
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/http_client.rb", line 32, in post
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/api_client.rb", line 38, in block (2 levels) in deliver_message
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/client.rb", line 58, in take_response_of
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/api_client.rb", line 38, in block in deliver_message
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/client.rb", line 39, in with_retries
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/api_client.rb", line 37, in deliver_message
  File "/usr/local/bundle/gems/postmark-1.21.3/lib/postmark/handlers/mail.rb", line 14, in deliver!
  File "/usr/local/bundle/gems/mail-2.7.1/lib/mail/message.rb", line 2159, in do_delivery
  File "/usr/local/bundle/gems/mail-2.7.1/lib/mail/message.rb", line 260, in block in deliver
  File "/usr/local/bundle/gems/actionmailer-6.1.4.1/lib/action_mailer/base.rb", line 559, in block in deliver_mail
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/notifications.rb", line 203, in block in instrument
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/notifications/instrumenter.rb", line 24, in instrument
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/notifications.rb", line 203, in instrument
  File "/usr/local/bundle/gems/actionmailer-6.1.4.1/lib/action_mailer/base.rb", line 557, in deliver_mail
  File "/usr/local/bundle/gems/mail-2.7.1/lib/mail/message.rb", line 260, in deliver
  File "/usr/local/bundle/gems/actionmailer-6.1.4.1/lib/action_mailer/message_delivery.rb", line 119, in block in deliver_now
  File "/usr/local/bundle/gems/actionmailer-6.1.4.1/lib/action_mailer/rescuable.rb", line 17, in handle_exceptions
  File "/usr/local/bundle/gems/actionmailer-6.1.4.1/lib/action_mailer/message_delivery.rb", line 118, in deliver_now
  File "/app/app/controllers/retirement_controller.rb", line 15, in create
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_controller/metal/basic_implicit_render.rb", line 6, in send_action
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/abstract_controller/base.rb", line 228, in process_action
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_controller/metal/rendering.rb", line 30, in process_action
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/abstract_controller/callbacks.rb", line 42, in block in process_action
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/callbacks.rb", line 117, in block in run_callbacks
  File "/usr/local/bundle/gems/active_decorator-1.3.4/lib/active_decorator/view_context.rb", line 37, in block (3 levels) in <module:Filter>
  File "/usr/local/bundle/gems/active_decorator-1.3.4/lib/active_decorator/view_context.rb", line 25, in run_with
  File "/usr/local/bundle/gems/active_decorator-1.3.4/lib/active_decorator/view_context.rb", line 36, in block (2 levels) in <module:Filter>
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/callbacks.rb", line 126, in instance_exec
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/callbacks.rb", line 126, in block in run_callbacks
  File "/usr/local/bundle/gems/actiontext-6.1.4.1/lib/action_text/rendering.rb", line 20, in with_renderer
  File "/usr/local/bundle/gems/actiontext-6.1.4.1/lib/action_text/engine.rb", line 59, in block (4 levels) in <class:Engine>
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/callbacks.rb", line 126, in instance_exec
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/callbacks.rb", line 126, in block in run_callbacks
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/callbacks.rb", line 137, in run_callbacks
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/abstract_controller/callbacks.rb", line 41, in process_action
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_controller/metal/rescue.rb", line 22, in process_action
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_controller/metal/instrumentation.rb", line 34, in block in process_action
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/notifications.rb", line 203, in block in instrument
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/notifications/instrumenter.rb", line 24, in instrument
  File "/usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/notifications.rb", line 203, in instrument
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_controller/metal/instrumentation.rb", line 33, in process_action
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_controller/metal/params_wrapper.rb", line 249, in process_action
  File "/usr/local/bundle/gems/activerecord-6.1.4.1/lib/active_record/railties/controller_runtime.rb", line 27, in process_action
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/abstract_controller/base.rb", line 165, in process
  File "/usr/local/bundle/gems/actionview-6.1.4.1/lib/action_view/rendering.rb", line 39, in process
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_controller/metal.rb", line 190, in dispatch
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_controller/metal.rb", line 254, in dispatch
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_dispatch/routing/route_set.rb", line 50, in dispatch
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_dispatch/routing/route_set.rb", line 33, in serve
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_dispatch/journey/router.rb", line 50, in block in serve
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_dispatch/journey/router.rb", line 32, in each
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_dispatch/journey/router.rb", line 32, in serve
  File "/usr/local/bundle/gems/actionpack-6.1.4.1/lib/action_dispatch/routing/route_set.rb", line 842, in call
  File "/usr/local/bundle/gems/omniauth-1.9.1/lib/omniauth/strategy.rb", line 192, in call!
  File "/usr/local/bundle/gems/omniauth-1.9.1/lib/omniauth/stra

komagata avatar Aug 30 '21 08:08 komagata

このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。

github-actions[bot] avatar Aug 10 '22 01:08 github-actions[bot]

このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。

github-actions[bot] avatar Oct 10 '22 01:10 github-actions[bot]

このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。

github-actions[bot] avatar Dec 11 '22 01:12 github-actions[bot]

:memo: おそらく本番でのみ起きる。 送信部分でエラーをトラップしてメールが飛ばなくても退会できるようにする。

komagata avatar Dec 14 '22 06:12 komagata

@komagata @machida おはようございます~

1点質問があります。 メール送信時エラー内容は、ログに出力する必要はありますか?

というのも外部API(GitHubログイン)のエラーを拾っている例では警告レベルのログを出力しているため、監視などで使用しているのではと?気になったためです。

https://github.com/fjordllc/bootcamp/blob/9b48cc611a627be61ae9d05f466695bfe518416b/app/controllers/user_sessions_controller.rb#L57-L58

また、ログ出力が必要であれば上記のコードにならって次の内容を警告レベルのログとして出力できればと考えています。 [Postmark] 受信者由来のエラーのためメールを送信できませんでした。:<エラーオブジェクトのメッセージ内容>

よろしくおねがいします🙏

maeda-m avatar Dec 19 '22 01:12 maeda-m

@maeda-m ログ出力するようにお願いできればありがたいです〜。

komagata avatar Dec 20 '22 17:12 komagata

@komagata 回答ありがとうございます。承知しました~。

maeda-m avatar Dec 21 '22 00:12 maeda-m

@komagata @machida こちらのプルリクエスト #5956 がリリースされましたので本番環境で次の動作確認をお願いしたいです~🙏

  1. 存在しないメールアドレス(例 [email protected] )でかつ、現役生のユーザーでログインします
  2. 画面上の Me からメニューを開き、リンク「退会手続き」をクリックします
  3. 項目「全体の満足度を教えてください」で選択肢「とても良い」をリックします
  4. ボタン「退会する」と確認ダイアログをクリックします
  5. 「退会処理が完了しました」と表示されることを確認します
  6. production.log の警告ログに [Postmark] 受信者由来のエラーのためメールを送信できませんでした。:<エラーオブジェクトのメッセージ内容> と出力されることを確認します
  7. 必要であれば管理者権限を持つユーザーでログインし、管理ページから退会済みユーザーを削除します

※ 退会ユーザーの削除など管理者権限が必要かと思いますのでお願いしてみました~

maeda-m avatar Jan 12 '23 07:01 maeda-m

@maeda-m こちら、本番環境だと影響が大きいので確認はなしでOKにしたいと思います〜。

komagata avatar Jan 16 '23 06:01 komagata

@komagata 承知しました~。Close します~

maeda-m avatar Jan 16 '23 07:01 maeda-m