操作
Backport(バックポート) #2522
完了PHPのsafe modeを使用している環境でmail_envelope_fromを設定するとメールが送信できない
開始日:
2010-07-13
期日:
進捗率:
100%
予定工数:
説明
Overview (現象)¶
PHP の safe mode が有効な環境で、config/OpenPNE.yml の設定で mail_smtp_host を指定せずに mail_envelope_from を指定している場合に、招待メール送信などのメールを送信するアクションを実行すると 500 Internal Server Error が発生する。
エラー内容は以下の通り。
500 | Internal Server Error | Zend_Mail_Transport_Exception Unable to send mail
mail_envelope_from の設定をしていない場合は正常にメールが送信される。
CORESERVER Bプラン、OpenPNE 3.6beta11で現象を確認。詳細は note-12 のコメント。
Causes (原因)¶
safe mode が有効な状態で PHP の mail() 関数に第5引数を指定して実行しているため。
Way to fix (修正内容)¶
safe mode が有効かつ外部のSMTPサーバを利用しない( mail_smtp_host を指定していない)状態では mail_envelope_from の設定が利用できないことを前提とし、その説明を設定ファイルに加え、ソースコード上で safe mode の設定値を取得して有効な場合には mail_envelope_from を利用しないようにした。
元のバグ報告内容¶
http://sns.openpne.jp/communityTopic/6047
OpenPNE 3.5.2を利用していますが、 「友人を招待する」から招待メールを送信しようとすると、 メールアドレスと本文を入力する画面までは出るのですが、 「送信」ボタンを押すと、「500 Internal Server Error」となってしまいました。 デバッグモードで試してみても、Internal Server Errorの画面が出るだけでした。 これはバグなのでしょうか? どうか調査お願い申し上げます。 (1)OpenPNEのバージョン : 3.5.2 (2)サーバー情報 : 「CORESERVER.jp Bプラン」を使用 PHPバージョン:5.2.5 MySQL : 5.1.22-rc (3)エラー概要 : 招待メールを送信するとき、フォーム入力画面は表示されるが、「送信」ボタンを押すとInternal Server Errorとなる。
wa ta さんが約13年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 1f036600e918fc150b75ee56b2019bd425117d30 で適用されました。
Kousuke Ebihara さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Mutsumi Imamura さんが約13年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
操作