2012-02-17 59 views
3

我tryng與此腳本PHP PEAR send_mail無法設置發信人的姓名和電子郵件

$to = '[email protected]'; 
$headers['To'] = $to; 
$headers['From'] = '"My Name" <[email protected]>'; 
$headers['Return-Path'] = '[email protected]'; 
$headers['Subject'] = 'Subject'; 

$auth = array('host' => MAIL_HOST, 'auth' => true, 'username' => MAIL_USER, 'password' => MAIL_PASS); 
$smtp = Mail::factory('smtp', $auth); 
$mail = $smtp->send($to, $headers, $message); 

if (PEAR::isError($mail)) 
    echo('<p>PEAR mail: '.$mail->getMessage().'</p>'); 
else 
    echo('<p>PEAR mail: Message successfully sent!</p>'); 

發送一封電子郵件,但我得到了以下信息:

Failed to set sender: "My Name" <[email protected]> [SMTP: Invalid response code received from server (code: 501, response: <"My Name" <[email protected]>>: "@" or "." expected after ""My Name"")] 

當我做從這樣的領域:

$headers['From'] = '[email protected]'; 

它工作正常,我收到電子郵件。

我該如何發送一封包含發件人姓名的電子郵件?

+0

你試過了嗎? '我的名字<[email protected]>'也是一個有效的郵箱。 – Alexander 2012-02-17 19:57:55

回答

5

Return-Path和Reply-To不一樣。

返回路徑:如果您想覆蓋電子郵件的信封發件人,請設置Return-Path標題,並使用該值代替From:標題的值(來自PEAR網站)。您無法爲Return-Path設置名稱,只是一個電子郵件地址。

回覆:使收件人回覆此地址。您可以設置一個名稱和一個電子郵件地址。

因此,通過回覆替換返回路徑,它將工作。

1

爲什麼你需要From中的電子郵件地址。我建議你應該添加「Reply-To」標題,並在其中提供電子郵件地址並從中指定名稱。

+0

我需要From中的電子郵件地址,因爲如果沒有,它將不會發送。但我的錯誤是我雖然返回路徑回覆,並導致一個錯誤。當我用Reply-To替換Return-Path時,它可以工作。 – Marm 2012-02-17 20:26:59

+0

很高興聽到設置回覆使它工作 – 2012-02-18 06:20:01

相關問題