2010-08-12 57 views
8

的返回路徑有沒有辦法來改變使用的PHPMailer更改使用的PHPMailer

返回路徑我做了以下和沒有工作

$mail->AddCustomHeader('Return-path:[email protected]'); 

我用以下語句發送郵件

if(!$mail->Send()) { 
     echo "Mailer Error: " . $mail->ErrorInfo; 

    } else { 
     //Building the reporting email to report on all the mails send 
     echo "Message REPORT sent!\n"; 
    } 

我收到電子郵件,但返回路徑不變?

回答

19

以下解決了這個問題,我調整了發件人屬性,它爲我工作。 $mail->Sender = '[email protected]';

+0

對,這很有效。這在內部設置了返回路徑。謝謝 – 2014-12-07 14:37:53

1

最可能的原因是您發送此郵件的郵件服務器強制執行特定的返回路徑。 「託管」網站空間通常是這種情況。

在這種情況下,您沒有太多選擇。嘗試與您的主機聊天。

-2

除了使用回覆路徑頭的,試試這個:

$mail->AddCustomHeader('Reply-to:[email protected]'); 

我使用回覆到頁眉和有甚至共享空間巨大成功。

+0

我誤解了你嗎?您是否想要更改發送失敗的郵件和警告的路徑,或者您是否想更改人們回覆的地址? – SimonDowdles 2010-08-12 13:03:16

+0

@webfac,如果郵件沒有發送郵件反彈,我需要知道它彈回到哪個地址,我認爲它反彈的唯一的東西是回覆路徑 – Roland 2010-08-12 13:27:21

+0

@Roland - 這是正確的是,我誤解了你一會兒。我沒有看到爲什麼Reply-path不起作用的原因,除非這個頭文件被放置在你的標準To,From頭文件等中?如果這樣做可能很好的答案。 – SimonDowdles 2010-08-12 13:34:16

5

正確的方式來設置ReturnPath這樣(2013年7月)是通過使用:

$mail->ReturnPath='[email protected]'; 

的PHPMailer的源包含以下,這就是爲什麼我認爲$ MAIL->發件人工作

if ($this->ReturnPath) { 
    $result .= $this->HeaderLine('Return-Path', '<'.trim($this->ReturnPath).'>'); 
} elseif ($this->Sender == '') { 
    $result .= $this->HeaderLine('Return-Path', '<'.trim($this->From).'>'); 
} else { 
    $result .= $this->HeaderLine('Return-Path', '<'.trim($this->Sender).'>'); 
} 
+0

這應該被標記爲正確的答案。 – cytsunny 2017-10-17 07:38:38

+0

這不再是這種情況,因爲phpmailer擴展了它的代碼: /** *消息的返回路徑。 *如果爲空,它將被設置爲發件人或發件人。 * var string *棄用電子郵件發件人不應設置返回路徑標頭; *這是接收者的工作(RFC5321第4.4節),所以這不再做任何事情。 *鏈接https://tools.ietf.org/html/rfc5321#section-4.4 RFC5321參考 * / – 2017-11-09 20:56:45