Bug(バグ) #3358
OpenPNE.ymlに設定したmail_envelope_fromがReturnPathに反映されない
0%
Description
現象¶
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
Related issues
Associated revisions
fixed to apply 'op_mail_envelope_from' config for sendmail transport (refs #3358)
removed useless setReturnPath() method call (refs #3358)
History
#1
Updated by Mutsumi Imamura almost 9 years ago
- Copied to Backport(バックポート) #3582: OpenPNE.ymlに設定したmail_envelope_fromがReturnPathに反映されない added
#2
Updated by Mutsumi Imamura almost 9 years ago
- Copied to Backport(バックポート) #3583: OpenPNE.ymlに設定したmail_envelope_fromがReturnPathに反映されない added
#3
Updated by Akihiro KOBAYASHI almost 9 years ago
- Status changed from New(新規) to Accepted(着手)
- Assignee set to Akihiro KOBAYASHI
#4
Updated by Akihiro KOBAYASHI almost 9 years ago
- File opMailSend.class.php View added
上記「関連情報」を参考(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
で対応しました(詳しくは添付ファイル)
#5
Updated by Akihiro KOBAYASHI almost 9 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
プルリクエストしました
https://github.com/openpne/OpenPNE3/pull/117
able to reflect the data of "mail_envelope_from" to "ReturnPath"(fixed #3358)
#6
Updated by Rimpei Ogawa almost 9 years ago
- Status changed from Pending Review(レビュー待ち) to 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);
#7
Updated by Rimpei Ogawa almost 9 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
fixed mail Return-Path header by balibali · Pull Request #123 · openpne/OpenPNE3
https://github.com/openpne/OpenPNE3/pull/123
プルリクエスト作成しました。
note-5 の元修正にあった setReturnPath()
呼び出しの削除も別コミットに分けて入れました。この処理の削除自体はバグ修正に必須ではありません。
#8
Updated by Yuya Watanabe almost 9 years ago
- Assignee changed from Akihiro KOBAYASHI to Rimpei Ogawa
- Target version set to OpenPNE 3.9.0-old
- 3.6 で発生するか changed from Unknown (未調査) to Yes (はい)
#9
Updated by Yuya Watanabe almost 9 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
#11
Updated by isao sano almost 6 years ago
- Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
- % Done changed from 70 to 0
OpenPNE 3.8.11 にて対応済みであったため、対応せずとします。