Email 如何在cakePHP电子邮件组件中重写或设置返回路径?

Email 如何在cakePHP电子邮件组件中重写或设置返回路径?,email,cakephp,return-path,Email,Cakephp,Return Path,我正在使用cakePHP电子邮件组件从我的应用程序发送邮件。现在返回路径有如下内容www@domain.tld 使用cakePHP组件时,如何设置或重写电子邮件中的返回路径值 我知道如何在PHP中通过“邮件”发送邮件,但cakePHP电子邮件组件似乎缺少这样一个功能。。。还是我遗漏了什么?:) 当您在查看如何使用该组件的其余部分时,您应该看到如下内容。这就是设置返回路径的原因 $this->Email->return=name@tld.com'; 有一个名为EmailComponent::ret

我正在使用cakePHP电子邮件组件从我的应用程序发送邮件。现在返回路径有如下内容www@domain.tld

使用cakePHP组件时,如何设置或重写电子邮件中的返回路径值


我知道如何在PHP中通过“邮件”发送邮件,但cakePHP电子邮件组件似乎缺少这样一个功能。。。还是我遗漏了什么?:)

当您在查看如何使用该组件的其余部分时,您应该看到如下内容。这就是设置返回路径的原因


$this->Email->return=name@tld.com';

有一个名为EmailComponent::return的属性,它是错误消息的返回路径。请注意,这与replyTo属性不同

$this->Email->return = 'name@example.com';

要更改CakePHP电子邮件组件中的返回路径,请执行以下操作:

...
$return_path_email = 'return@email.com';
...

$this->Email->additionalParams = '-f'.$return_path_email;

它就像魅力一样有效;)

我和一位同事在处理同一个问题时,我们发现在php.ini中编辑以下行为我们提供了解决方案:

发件人:

致:


测试时,请确保将电子邮件发送到有效域。我们被这件事吸引了几分钟

cakephp2中(电子邮件组件大部分被类替换),您可以在/app/Config/Email.php中进行此配置:

class EmailConfig {
    public $email = array(
        ...
        // The next line attempts to create a 'Return-path' header
        'returnPath' => 'myaddress@mydomain.com',

        // But in some sendmail configurations (esp. on cPanel)
        // you have to pass the -f parameter to sendmail, like this
        'additionalParameters' => '-fmyaddress@mydomain.com',
        ...
    );
}
或者,如果你只需要为一封电子邮件做这件事,像这样的事情应该会奏效

App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail('MyConfig');
$email->from(...)
      ->to(...)
      ->subject(...)
      ->returnPath('myaddress@mydomain.com')
      // Haven't tested this next line, but may possibly work?
      ->config(array('additionalParameters' => '-fmyaddress@mydomain.com'))
      ->send();

你完全正确。就像Jon说的,这是一个简单的$this->Email->return=name@example.com'; 它以前试过,但不起作用(现在也不起作用,但我想我可能知道问题出在哪里)。似乎我们的邮件服务器在发送前正在重写标题:/My的$this->Email->return问题=xy@domain.tld通过邮件/默认发送时,它被postfix重写。我不得不通过smtp发送邮件,返回也不起作用——但是:它会被发件人/发件人回复。有人知道为什么postfix会重写返回路径吗?cake调试确实显示了交替返回路径设置。解决了邮件实际发送时被覆盖的问题。
$this->Email->return
。对于CakePHP 2,
->config(数组('additionalParameters'=>')-fmyaddress@mydomain.com“)
是实现这一技巧的一行。不需要指定returnPath()。
class EmailConfig {
    public $email = array(
        ...
        // The next line attempts to create a 'Return-path' header
        'returnPath' => 'myaddress@mydomain.com',

        // But in some sendmail configurations (esp. on cPanel)
        // you have to pass the -f parameter to sendmail, like this
        'additionalParameters' => '-fmyaddress@mydomain.com',
        ...
    );
}
App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail('MyConfig');
$email->from(...)
      ->to(...)
      ->subject(...)
      ->returnPath('myaddress@mydomain.com')
      // Haven't tested this next line, but may possibly work?
      ->config(array('additionalParameters' => '-fmyaddress@mydomain.com'))
      ->send();