1

zend_mail を使用して returnPath を設定した理由を教えてください。受信したメールは、smtp trasport を使用してパス ヘッダーを返す必要があります (Gmail で表示します):

Return-Path: <bounce@domain.com> //I think this is added by server
.....
Return-Path: bounce@domain.com //I think this is cause by returnPath

return-path を次のように設定します。

$mailer->setReturnPath('bounce@domain.com');

トランスポートを次のように設定します。

$emailConfig = $this->getOption('email');                                   
$transport = new Zend_Mail_Transport_Smtp($emailConfig['server'], $emailConfig);
Zend_Mail::setDefaultTransport($transport);

returnPath サーバーを設定しない場合は、From ヘッダーを設定したのと同じように returnPath を追加します。Zend_Mail のバグですか、それとも何ですか? サーバーは、MAIL_FROM での使用と同じように return-path ヘッダーを追加し、setReturnPath はヘッダーをメニューに追加するのではなく、MAIL_FROM に使用するために保存するだけであることを理解していますか? Zend_Mail_Transport_Smtp のコード コメント行を変更します。

/**
 * Sets the Return-Path header of the message
 *
 * @param  string    $email
 * @return Zend_Mail Provides fluent interface
 * @throws Zend_Mail_Exception if set multiple times
 */
public function setReturnPath($email)
{
    if ($this->_returnPath === null) {
        $email = $this->_filterEmail($email);
        $this->_returnPath = $email;

        //This line presents in Zend_Framework
        //I comment this like I get only one return-path the same as
        //set using setReturnPath method of Zend_Mail
        //$this->_storeHeader('Return-Path', $email, false);
    } else {
        /**
         * @see Zend_Mail_Exception
         */
        require_once 'Zend/Mail/Exception.php';
        throw new Zend_Mail_Exception('Return-Path Header set twice');
    }
    return $this;
}   
4

2 に答える 2

0

Zend では、トランスポートを明示的に選択することで、必要な追加パラメーターを sendmail に渡すことができます。

$tr = new Zend_Mail_Transport_Sendmail('-fmail@example.com');
 $_mail = new Zend_Mail();
 $_mail->setDefaultTransport($tr);
于 2015-11-25T12:10:23.923 に答える
-2

これを試して:

$mail->addHeader('Return-path', 'email@address.com'); 
于 2013-01-09T11:58:51.607 に答える