2013-02-15 80 views
2

我使用的是發送一個PHP電子郵件:Â出現在HTML電子郵件

mail($email, $subject, $message, $header); 

我佈置這樣的消息,包括:價格這樣的一些表:

$message = <<<EOF 

<td style=\"border-bottom: 1px solid black; padding-bottom:4px; padding-top:4px; padding-right: 10px; text-align:right;\">£</td> 

EOF; 

在某些電子郵件客戶端£顯示爲£。

我明白這是關於字符格式。但是這樣發送PHP郵件時如何設置UTF-8字符集呢?

TIA

+2

搜索'PHP UTF-8 email'應該幫助 – 2013-02-15 13:03:16

回答

2

首先實體,你可以使用的

&pound; 

不是原始£字符。

要設置電子郵件的字符編碼,設置標題:

$from = '[email protected]'; 
$to  = '[email protected]'; 
$subject = 'Subject'; 


$headers = "From: " . $from . "\r\n"; 
$headers .= "Reply-To: ". $from . "\r\n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=UTF-8\r\n"; 

$message = 'message'; 

mail($to, $subject, $message, $headers); 
+1

謝謝包括兩種方法。我已經這麼做了,希望這將是該問題的結束。 – 2013-02-15 13:26:47

+1

沒問題,應該可以解決你的問題!另外,通過設置標題,您現在可以發送HTML電子郵件,而不是無聊的純文本! – martincarlin87 2013-02-15 13:29:21

3

使用HTML的井號

&pound; 
3

這比fin1te的一個更通用的解決方案:

$header = array(
    "From: {$email}", 
    "MIME-Version: 1.0", 
    "Content-Type: text/html;charset=utf-8" 
); 
$result = mail($email, $subject, $message, implode("\r\n", $header));