プロジェクト

全般

プロフィール

Bug(バグ) #3358

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

和弘 渕上ほぼ11年前に追加. ほぼ7年前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2013-06-11
期日:
進捗率:

0%

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

説明

現象

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 表示 (6.92 KB) Akihiro KOBAYASHI, 2014-04-04 05:24


関連するチケット

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

関係しているリビジョン

リビジョン cc0352d9 (差分)
Rimpei Ogawaほぼ10年前に追加

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

リビジョン 88680b79 (差分)
Rimpei Ogawaほぼ10年前に追加

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

履歴

#1 Mutsumi Imamura約10年前に更新

#2 Mutsumi Imamura約10年前に更新

#3 Akihiro KOBAYASHIほぼ10年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Akihiro KOBAYASHI にセット

#4 Akihiro KOBAYASHIほぼ10年前に更新

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

#6 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);

#7 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() 呼び出しの削除も別コミットに分けて入れました。この処理の削除自体はバグ修正に必須ではありません。

#8 Yuya Watanabeほぼ10年前に更新

  • 担当者Akihiro KOBAYASHI から Rimpei Ogawa に変更
  • 対象バージョンOpenPNE 3.9.0-old にセット
  • 3.6 で発生するかUnknown (未調査) から Yes (はい) に変更

#9 Yuya Watanabeほぼ10年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#11 isao sanoほぼ7年前に更新

  • ステータスPending Testing(テスト待ち) から Won't fix(対応せず) に変更
  • 進捗率70 から 0 に変更

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

他の形式にエクスポート: Atom PDF