2013-01-17 39 views
1

我對使用此電子郵件腳本的非英文字符有問題。如果我將腳本設置爲將電子郵件發送到我的Gmail帳戶,那麼我沒有任何問題。但是,如果我將腳本設置爲將電子郵件發送到我的域帳戶,並且如果我使用Windows Live Mail或Microsoft Outlook打開電子郵件,則電子郵件不可讀。我必須去編碼菜單,然後選擇utf-8,然後我可以閱讀電子郵件。php在windows上發送郵件腳本編碼問題

如果我在iMac郵件客戶端打開郵件,我沒有問題。

我的客戶看到這是一個大問題,並希望我解決它。任何人都可以幫忙

下面是代碼:

<?php 
// send the form to the specify email 

// CONFIG VARS 
$subject = "mysite.com | contact form"; 
$to = "[email protected]"; 
$from = '[email protected]'; 


//data 
$msg = "Name: " .$_POST['namesup'] ."<br>\n"; 
$msg .= "Email: " .$_POST['emailsup'] ."<br>\n"; 
$msg .= "Phone: " .$_POST['phonesup'] ."<br>\n"; 
$msg .= "Message: " .$_POST['yourtextsup'] ."<br>\n"; 

//Headers 
$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=UTF-8\r\n"; 
$headers .= "From: <".$from. ">" ; 


//send 
mail($to, $subject, $msg, $headers); 
?> 

任何幫助將十分讚賞。 卓然

回答

1

結帳這段代碼會爲我工作,

<?php 

$subject = "mysite.com | contact form"; 
$to = "[email protected]"; 
$from = '[email protected]'; 

$msg = '<html> 
      <head> 
      </head> 
       <body> 
       <p> 
           Name: ".$_POST['namesup']."<br> 
           Email: ".$_POST['emailsup']."<br> 
           Phone: ".$_POST['phonesup']."<br> 
           Message: ".$_POST['yourtextsup']."<br> 
        </p> 
       </body> 
     </html>'; 

    $headers = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=UTF-8' . "\r\n"; 
    $headers .= "X-Mailer: PHP \r\n"; 
    $headers .= "From: <".$from. ">" ; 

    mail($to,$subject,$msg,$headers); 
?> 

此行$headers = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=UTF-8' . "\r\n";是像阿拉伯語解決你的問題或其他人。

+0

嗨Advait。我只是測試上面的代碼,同樣的故事。不可讀的字符。 – Zoran

+0

@Zoran可以給我一些文字樣本,所以我可以測試並找回你。 –

+0

有些話可能會輸入 – Zoran

0

我建議,確保你的消息是有效的HTML,包括<html><head>標籤,並且確保你包括<meta http-equiv="Content-Type" content="text/html charset=UTF-8" />標籤。所以:

//data 
$msg = '<html><head><meta http-equiv="Content-Type" content="text/html charset=UTF-8" /></head><body>'; 
$msg .= "Name: " .$_POST['namesup'] ."<br>\n"; 
$msg .= "Email: " .$_POST['emailsup'] ."<br>\n"; 
$msg .= "Phone: " .$_POST['phonesup'] ."<br>\n"; 
$msg .= "Message: " .$_POST['yourtextsup'] ."<br>\n"; 
$msg .= '</body></html>'; 
+0

我現在就試試Gareth和我會讓你知道它是否可以工作 – Zoran

+0

nope。相同的結果。我在裏面收到不可讀的字符+ html標籤。 – Zoran

+0

你確定收集post變量的頁面是用UTF-8編碼的嗎? –

0

試着改變你的腳本字符集到:

<?php 
// send the form to the specify email 

// CONFIG VARS 
$subject = "mysite.com | contact form"; 
$to = "[email protected]"; 
$from = '[email protected]'; 


//data 
$msg = "Name: " .$_POST['namesup'] ."<br>\n"; 
$msg .= "Email: " .$_POST['emailsup'] ."<br>\n"; 
$msg .= "Phone: " .$_POST['phonesup'] ."<br>\n"; 
$msg .= "Message: " .$_POST['yourtextsup'] ."<br>\n"; 

//Headers 
$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1"; 
$headers .= "From: <".$from. ">" ; 


//send 
mail($to, $subject, $msg, $headers); 
?> 
+0

我試着用iso-8859-7這是我需要的,(希臘編碼),它沒有奏效。 – Zoran