2010-01-28 33 views
8

我使用cakePHP電子郵件組件從我的應用程序發送郵件。現在返回路徑有如[email protected]如何重寫或設置cakePHP電子郵件組件中的返回路徑?

如何在使用cakePHP組件時設置或重寫電子郵件中的Return-Path值?

我知道如何做到這一點,當通過郵件發送郵件在PHP中,但cakePHP電子郵件組件似乎缺少這樣的功能......或者我錯過了什麼? :)

+0

我的問題與$這個 - >的電子郵件 - >收益率= [email protected]是,它是由後綴通過發送時重寫郵件/默認。我不得不通過smtp發送我的郵件,其中退貨也不起作用 - 但是:它會被髮件人/發件人重新發送。 有沒有人有線索爲什麼postfix重寫返回路徑? Cake調試確實顯示交替的返回路徑設置。 – 2010-01-30 17:49:59

回答

4

有一個稱爲EmailComponent :: return的屬性,它是錯誤消息的返回路徑。請注意,這與replyTo屬性不同。

$this->Email->return = '[email protected]'; 

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

+0

你是完全正確的。也像Jon說的那樣簡單 $ this-> Email-> return ='[email protected]'; 它之前嘗試過,但它沒有工作(現在也沒有,但我想我可能知道問題出在哪裏)。似乎我們的郵件服務器在發送之前正在重寫郵件頭:/ – 2010-01-29 09:29:59

0

當您在查看如何使用組件的其餘部分時,應該看到如下所示的內容,然後深入研究Cake手冊。這是設置返回路徑。

$ this-> Email-> return ='[email protected]';

2

要改變CakePHP的郵件組件的返回路徑我這樣做:

... 
$return_path_email = '[email protected]'; 
... 

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

和它的作品般的魅力;)

+0

解決郵件實際發送時覆蓋「$ this-> Email-> return」的問題。 – 2012-10-22 13:51:58

3

一位同事和我正在處理這個相同的問題,我們發現在php.ini中編輯以下行給了我們我們的修復:

來自:

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

到:

sendmail_path = /usr/sbin/sendmail -t -i -f [email protected] 

測試一定要送你的電子郵件,以有效的域時。這讓我們抓了幾分鐘。

7

CakePHP的2(其中電子郵件組件主要由CakeEmail類代替),你可以做到這一點的配置裏面/app/Config/email.php:

class EmailConfig { 
    public $email = array(
     ... 
     // The next line attempts to create a 'Return-path' header 
     'returnPath' => '[email protected]', 

     // But in some sendmail configurations (esp. on cPanel) 
     // you have to pass the -f parameter to sendmail, like this 
     'additionalParameters' => '[email protected]', 
     ... 
    ); 
} 

或者,如果您需要這樣做只是爲一個單一的電子郵件,這樣的事情應該工作...

App::uses('CakeEmail', 'Network/Email'); 
$email = new CakeEmail('MyConfig'); 
$email->from(...) 
     ->to(...) 
     ->subject(...) 
     ->returnPath('[email protected]') 
     // Haven't tested this next line, but may possibly work? 
     ->config(array('additionalParameters' => '[email protected]')) 
     ->send(); 
+0

太棒了。:) – VishalParkash 2016-11-30 12:19:29

+1

對於CakePHP 2,' - > config(array('additionalParameters'=>'-f [email protected]'))'是做這個伎倆的線。指定returnPath()不是必需的。 – 2017-09-21 19:36:32

相關問題