Backport(バックポート) #1373
メールサーバーに接続できない場合の例外処理がキャッチされていないため500エラーになる
100%
説明
現象¶
- config/OpenPNE.yml の mail_smtp_host に接続できないメールサーバーのホストを記述し、招待メールを送信すると500エラーになる
- メールサーバーの障害の対処がされていない (エラー表示やログ出力などの対処が必要)
バージョン:3.6beta1
原因¶
Zend_Mail_Protocol_Exception の例外がキャッチされていない
修正内容¶
- Zend_Mail_Protocol_Exception をキャッチした際にメール送信に失敗した旨のsymfony のログ出力にするように修正 (ログ設定が有効な場合)
- 例外をキャッチするのみで、特に処理は行わないようにした (500エラーはでない)
修正方針¶
- 500エラーが表示されないような動作になっていればよい実装とする。
- 専用のエラーページを出す必要はなく、例外をキャッチし、ログに状態が出力されていればいいこととする
関連するチケット
関係しているリビジョン
(fixes #1373) This modification is that modified to catch the exception when sending mail
Squashed commit of the following:
commit 93905c08d7c91ca71152fa0b7e251f5d791cb734
Author: touri <tourimgr@gmail.com>
Date: Wed Aug 17 19:04:42 2011 +0900
fixed to mail error template. (fixes #2360, BP from #1372)
commit 3fc1cdb0aeb224ddf0eaa256ea0a08cc8302037e
Author: touri <tourimgr@gmail.com>
Date: Wed Aug 17 17:21:02 2011 +0900
changed order of process in opMemberAction::executeConfig().
fixed to mail error template. (fixes #2360, BP from #1372)
Conflicts:
lib/action/opMemberAction.class.php
commit 1f56cbf0ca444d19269a9ec9ba5bffa4613b497c
Author: ShinichiU <urabe@nuts-choco.com>
Date: Tue Aug 9 14:19:00 2011 +0900
(refs #1373, BP from #1372) cache Zend_Mail_Protocol_Exception in opExecutionFilter and forwad mailError action.
Conflicts:
lib/filter/opExecutionFilter.class.php
commit c1f6ee4093b994cb483ad17292cc58ced5c243e3
Author: ShinichiU <urabe@tejimaya.com>
Date: Thu Oct 6 20:44:23 2011 +0900
Revert "(fixes #1373) This modification is that modified to catch the exception when sending mail"
This reverts commit c0dd5cb0f8ec1d5c56efb164960a07c228dfeaf5.
履歴
#1 Shinichi Urabe が13年以上前に更新
- 優先度 を Normal(通常) から High(高め) に変更
- 対象バージョン を OpenPNE 3.4.7 から OpenPNE 3.4.8 に変更
#3 Shinichi Urabe が13年以上前に更新
- 対象バージョン を OpenPNE 3.4.9 から OpenPNE 3.4.10 に変更
#4 Shinichi Urabe が13年以上前に更新
- トラッカー を Backport(バックポート) から Bug(バグ) に変更
修正方針がmasterブランチと異なるので、バグチケットに変更します
#5 Shinichi Urabe が13年以上前に更新
- 担当者 を Shinichi Urabe にセット
#6 Shinichi Urabe が約13年前に更新
テストケース
テストケース | 期待値 | 結果 |
フレンドを招待時の動作 | PC:dev環境からメールサーバを存在しない mail_smtp_host: aaaaaaaaaaaaaaaaaa.localhost とし、メールを送信すると、ユーザ画面では送信完了しましたと表示されるのみでエラーにはならない(ログは出力される) | ○ |
フレンドを招待時の動作 | PC:prod環境からメールサーバを存在しない mail_smtp_host: aaaaaaaaaaaaaaaaaa.localhost とし、メールを送信すると、ユーザ画面では送信完了しましたと表示されるのみでエラーにはならない(ログは出力されない) | ○ |
フレンドを招待時の動作 | 携帯:dev環境からメールサーバを存在しない mail_smtp_host: aaaaaaaaaaaaaaaaaa.localhost とし、メールを送信すると、ユーザ画面では送信完了しましたと表示されるのみでエラーにはならない(ログは出力される) | ○ |
フレンドを招待時の動作 | 携帯:prod環境からメールサーバを存在しない mail_smtp_host: aaaaaaaaaaaaaaaaaa.localhost とし、メールを送信すると、ユーザ画面では送信完了しましたと表示されるのみでエラーにはならない(ログは出力されない) | ○ |
フレンドを招待時の動作 | cli メールサーバを存在しない mail_smtp_host: aaaaaaaaaaaaaaaaaa.localhost とし、デイリーニュースを送信するタスクを実行しても、何もエラーはでない | ○ |
フレンドを招待時の動作 | prodでログ出力されるように設定し、cli メールサーバを存在しない mail_smtp_host: aaaaaaaaaaaaaaaaaa.localhost とし、デイリーニュースを送信するタスクを実行しても、何もエラーはでない(ログ出力される) | ○ |
#7 Shinichi Urabe が約13年前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 c0dd5cb0f8ec1d5c56efb164960a07c228dfeaf5 で適用されました。
#8 Masato Nagasawa が約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
レビューOKです。
#9 Mutsumi Imamura が約13年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
以下のメール送信動作で確認し、ログの出力および500エラーにならないことを確認しました。
問題ありません。
- 新規登録URLお知らせメール(招待状)を送信する
- 登録完了メールを送信する
- コミュニティ参加お知らせメールを送信する
- フレンドリンク承認完了メールを送信する
- フレンド誕生日お知らせメールを送信する
- 退会完了メールを送信する
- メールアドレス変更お知らせメールを送信する
- パスワード再発行メール(管理画面メンバー一覧から送信)を送信する
- デイリーニュースを送信する
- パスワード再設定用URLお知らせメールを送信する
#10 Kousuke Ebihara が12年以上前に更新
- トラッカー を Bug(バグ) から Backport(バックポート) に変更
修正内容が異なっていたとしても同じバグに関する修正を扱うチケットであるため、このチケットのトラッカーは「Bug(バグ)」ではなく「Backport(バックポート)」が正しいです。