Project

General

Profile

Bug(バグ) #3358

OpenPNE.ymlに設定したmail_envelope_fromがReturnPathに反映されない

Added by 和弘 渕上 over 6 years ago. Updated over 2 years ago.

Status:
Won't fix(対応せず)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2013-06-11
Due date:
% Done:

0%

3.6 で発生するか:
Yes (はい)
3.8 で発生するか:
Yes (はい)

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

opMailSend.class.php View (6.92 KB) Akihiro KOBAYASHI, 2014-04-04 05:24


Related issues

Copied to OpenPNE 3 - Backport(バックポート) #3582: OpenPNE.ymlに設定したmail_envelope_fromがReturnPathに反映されない Fixed(完了) 2013-06-11
Copied to OpenPNE 3 - Backport(バックポート) #3583: OpenPNE.ymlに設定したmail_envelope_fromがReturnPathに反映されない Fixed(完了) 2013-06-11

Associated revisions

Revision cc0352d9 (diff)
Added by Rimpei Ogawa over 5 years ago

fixed to apply 'op_mail_envelope_from' config for sendmail transport (refs #3358)

Revision 88680b79 (diff)
Added by Rimpei Ogawa over 5 years ago

removed useless setReturnPath() method call (refs #3358)

History

#1 Updated by Mutsumi Imamura over 5 years ago

#2 Updated by Mutsumi Imamura over 5 years ago

#3 Updated by Akihiro KOBAYASHI over 5 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Akihiro KOBAYASHI

#4 Updated by Akihiro KOBAYASHI over 5 years ago

上記「関連情報」を参考(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 over 5 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 over 5 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 over 5 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 over 5 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 over 5 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#11 Updated by isao sano over 2 years ago

  • Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
  • % Done changed from 70 to 0

OpenPNE 3.8.11 にて対応済みであったため、対応せずとします。

Also available in: Atom PDF