2013-09-29 178 views
0

PHP sendmail的頭我在梅勒類工作不正常

// domain is equal to current domain with capital letters if any 
$from = domain; 
$replyto = '[email protected]'.strtolower(domain); 

$headers = "From: $from\r\nReply-To: ".$replyto; 
$headers .= "\nMIME-Version: 1.0\nContent-Type: text/html; charset=\"utf-8\"\r\n"; 

但由於某些原因,當我在我的郵箱發送電子郵件以下標題我收到一封電子郵件,從[email protected]其中是可怕的。我如何才能將我的網站名稱作爲發件人?

+0

是否有一個具體的理由,爲什麼你有時會使用'\ r \兩個頭之間N'有時候只是'\ n'? – TheWolf

+0

許多不同的設置可以影響郵件標題。最微不足道的是郵件服務器的配置。您可以嘗試使用郵件unix cli發送郵件來驗證郵件頭髮生了什麼。 (這只是調試的第一步。)或者可能在localhost中使用telnet。否則使用phpmailer可能是一個好主意。 但可能你的服務器MTA強制不需要的郵件地址。 –

+0

你用php的mail()函數嗎?手動構建標題可能會很痛苦,我遷移到了http://pear.php.net/manual/de/package.mail.mail.php,這很容易處理。 – jotaen

回答

4

爲了正確解析姓名和電子郵件地址,你應該爲他們提供的格式如下:

'From: Name <[email protected]>' 

所以這會是這樣的

'From: Marty McVry <[email protected]>' 

使用你的例子:

$headers = "From: $from <$replyto>\r\nReply-To: ".$replyto; 

只是提醒一下:我希望你不必使用$domain而不是domain ...否則會是一個愚蠢的錯字。 :-)

+0

超棒的東西!謝謝你先生。 McVry。 –