9

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

使用 cakePHP 组件时,如何设置或重写电子邮件中的 Return-Path 值?

我知道在 PHP 中通过“邮件”发送邮件时该怎么做,但是 cakePHP 电子邮件组件似乎缺少这样的功能......或者我错过了什么?:)

4

5 回答 5

8

CakePHP 2中(Email 组件大部分被CakeEmail类取代),您可以在 /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();
于 2014-06-12T04:52:59.340 回答
4

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

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

http://book.cakephp.org/1.3/en/The-Manual/Core-Components/Email.html

于 2010-01-28T19:41:04.907 回答
3

我和一位同事正在处理同样的问题,我们发现在 php.ini 中编辑以下行给了我们修复:

从:

sendmail_path = /usr/sbin/sendmail -t -i

到:

sendmail_path = /usr/sbin/sendmail -t -i -f youremail@address

测试时请务必将您的电子邮件发送到有效域。这让我们呆了几分钟。

于 2011-11-18T20:25:40.547 回答
2

要更改 CakePHP 电子邮件组件中的返回路径,我这样做:

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

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

它就像魅力一样;)

于 2011-08-29T13:35:28.163 回答
0

当您在查看如何使用组件的其余部分时深入研究 cake 手册,您应该会看到类似以下内容。这就是设置返回路径的原因。

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

于 2010-01-28T19:14:33.890 回答