Bug(バグ) #3358
完了OpenPNE.ymlに設定したmail_envelope_fromがReturnPathに反映されない
0%
説明
現象¶
OpenPNE.ymlにmail_envelope_fromの設定を行っても、設定値がReturnPathに反映されません。
config/OpenPNE.yml 96 # SNS から送信するメールの Envelope From (Return-Path ヘッダ) に指定するアドレス (PHP の safe_mode が有効な環境では指定できません) 97 # Envelope From (Return-Path header) address for sending e-mail from the SNS (cannot use if your PHP's safe_mode setting is on) 98 mail_envelope_from: "return@example.com"
原因¶
opMailSend::executeにて上記の設定値を
Zend_Mail::setReturnPathに引き渡しておりますが、このメソッドが期待通り動作していないようです。
lib/util/opMailSend.class.php 211 $mailer = new Zend_Mail('iso-2022-jp'); 212 $mailer->setHeaderEncoding(Zend_Mime::ENCODING_BASE64) 213 ->setFrom($from) 214 ->addTo($to) 215 ->setSubject(mb_encode_mimeheader($subject, 'iso-2022-jp')) 216 ->setBodyText(mb_convert_encoding($body, 'JIS', 'UTF-8'), 'iso-2022-jp', Zend_Mime::ENCODING_7BIT); 217 218 if ($envelopeFrom = sfConfig::get('op_mail_envelope_from')) 219 { 220 $mailer->setReturnPath($envelopeFrom); 221 }
関連情報¶
http://framework.zend.com/manual/1.12/ja/zend.mail.additional-headers.html
Note: Return-Path
もしメールに Return-Path を設定する場合は、sendmail トランスポートの設定をご覧ください。 残念ながら、 setReturnPath($email) メソッドはこの目的を果たしません。
http://framework.zend.com/manual/1.12/ja/zend.mail.introduction.html#zend.mail.introduction.sendmail
ファイル
Mutsumi Imamura さんが10年以上前に更新
- コピー先 Backport(バックポート) #3582: OpenPNE.ymlに設定したmail_envelope_fromがReturnPathに反映されない を追加
Mutsumi Imamura さんが10年以上前に更新
- コピー先 Backport(バックポート) #3583: OpenPNE.ymlに設定したmail_envelope_fromがReturnPathに反映されない を追加
Akihiro KOBAYASHI さんが10年以上前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Akihiro KOBAYASHI にセット
Akihiro KOBAYASHI さんが10年以上前に更新
- ファイル opMailSend.class.php opMailSend.class.php を追加
上記「関連情報」を参考(http://framework.zend.com/manual/1.12/ja/zend.mail.introduction.html#zend.mail.introduction.sendmail)に
$mailer->setReturnPath($envelopeFrom);の代わりに
new Zend_Mail_Transport_Sendmail
Zend_Mail::setDefaultTransport
で対応しました(詳しくは添付ファイル)
Akihiro KOBAYASHI さんが10年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
プルリクエストしました
https://github.com/openpne/OpenPNE3/pull/117
able to reflect the data of "mail_envelope_from" to "ReturnPath"(fixed #3358)
Rimpei Ogawa さんが10年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
note-5 のプルリクエストの内容を確認させていただきましたが、 send()
メソッドに追加されている処理は initialize()
メソッドに同様の処理があるため、本来追加する必要のないものです。
本チケットのバグが発生しているのは opMailSend::initialize()
の実装にバグがあるためです。
具体的には #1331 の修正により $envelopeFrom
の中身が boolean になっているのが原因です。
↓修正パッチ(後でプルリクエストにしておきます)
--- a/lib/util/opMailSend.class.php
+++ b/lib/util/opMailSend.class.php
@@ -32,7 +32,7 @@ class opMailSend
$tr = new Zend_Mail_Transport_Smtp($host, sfConfig::get('op_mail_smtp_config', array()));
Zend_Mail::setDefaultTransport($tr);
}
- elseif ($envelopeFrom = sfConfig::get('op_mail_envelope_from') && !ini_get('safe_mode'))
+ elseif (($envelopeFrom = sfConfig::get('op_mail_envelope_from')) && !ini_get('safe_mode'))
{
$tr = new Zend_Mail_Transport_Sendmail('-f'.$envelopeFrom);
Zend_Mail::setDefaultTransport($tr);
Rimpei Ogawa さんが10年以上前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
fixed mail Return-Path header by balibali · Pull Request #123 · openpne/OpenPNE3
https://github.com/openpne/OpenPNE3/pull/123
プルリクエスト作成しました。
note-5 の元修正にあった setReturnPath()
呼び出しの削除も別コミットに分けて入れました。この処理の削除自体はバグ修正に必須ではありません。
Yuya Watanabe さんが10年以上前に更新
- 担当者 を Akihiro KOBAYASHI から Rimpei Ogawa に変更
- 対象バージョン を OpenPNE 3.9.0-old にセット
- 3.6 で発生するか を Unknown (未調査) から Yes (はい) に変更
Yuya Watanabe さんが10年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更