2010-08-31 52 views
0

我正在創建一個簡單的PHP郵件函數。我的標題有一個小問題。我試圖設置發件人名稱爲客戶的網站,當我使用下面的代碼:PHP郵件頭問題

$headers = "From: Websites' Name"; 
$headers .= "\nMIME-Version: 1.0\n"."Content-Type: multipart/mixed;\n"." boundary=\"{$mime_boundary}\""; 
$headers .= "Reply-To: $email <$email>\n"; 
$headers .= "X-Sender: $email <$email>\n"; 
$headers .= "X-Priority: 1\n"; 

我收到的電子郵件和發件人將是「網站的[email protected]。 COM」。我想要的是,要擺脫「@ h184905.safesecureweb.com」我只想要「網站的名稱」出現......任何人都可以幫助我?

謝謝

回答

2

這是不可能的。電子郵件需要有效的from地址。

你能做的最好的是什麼,你已經做其他的標題:

$headers = "From: \"Websites' Name\" <[email protected]>"; 

(插入您的有效電子郵件[必須在同一臺服務器上]爲範例地址)

我假設Websites'只是一個例子 - 否則您可能需要轉義引號字符。

+0

將發送一個郵件說'來源:網站的<[email protected]>';如果顯示的名稱包含空格,則必須引用顯示的名稱;郵件程序會將第一個未加引號(如果是QP或base64的話,則爲非編碼)空間作爲顯示名稱和電子郵件地址之間的分隔符。 – Piskvor 2010-08-31 09:22:51

+0

@Piskvor當然,你是對的。更正了,歡呼聲。 – 2010-08-31 09:23:36

2

您需要設置一個有效的From頭 - 也就是說,一個有效的E-mail地址。你可以這樣做:

From: "Websites' Displayed Name" <[email protected]> 

請注意,如果你在顯示名稱中有空格,需要括在雙引號,(和非ASCII字符(如「ščřž」),你會需要使用quoted-pritable或base64)。

+0

謝謝,你的報價技巧對我很有幫助 – Kyborek 2012-10-04 13:37:38

0

如前所述,您需要在From字段中提供有效的郵箱。您可以使用imap_rfc822_write_address爲:

$headers = array(
    "From: ".imap_rfc822_write_address("info", "example.com", "Website's Name"), 
    "MIME-Version: 1.0", 
    "Content-Type: multipart/mixed; boundary=\"{$mime_boundary}\"", 
    "Reply-To: ".imap_rfc822_write_address("info", "example.com", "Website's Name"), 
    "X-Sender: ".imap_rfc822_write_address("info", "example.com", "Website's Name"), 
    "X-Priority: 1" 
); 
$headers = implode("\r\n", $headers);