2017-04-02 65 views
-1

我有一個從php代碼發送郵件的問題。我想在電子郵件中使用波蘭語字符。我在堆棧上搜索了很多帖子,但是沒有任何作用。PHP發送電子郵件編碼utf-8

<?php 
if(isset($_POST['submit'])){ 
$to = "[email protected]"; 
$from = $_POST['email']; 
$name = $_POST['name']; 
$phone = $_POST['phone']; 
$subject = "Wiadomość ze strony"; 
$message = "Imię i Nazwisko: " . $name . "\nTelefon kontaktowy: " . $phone . "\n\nTreść wiadomości:" . "\n\n" . $_POST['msg']; 

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

mail($to,$subject,$message,$headers); 
header('Location: index.html'); 
} 
?> 

我要求我的朋友檢查他的VPS和這段代碼工作正常。所以服務器一定有問題。我使用linuxpl.com。

我找到了解決方案。當我以html形式添加此行時,波蘭語字符正常工作。

accept-charset="ISO-8859-1" 
+0

,什麼是你得到的錯誤? – mrun

+0

沒有錯誤。波蘭字符無法正常工作,例如: Tre¶ćwiadomo¶ci:Ä...Ĺ>Ä» –

+0

檢查您的php文件是否採用utf-8編碼,同時在gmail上檢查傳入消息的「Content-type:」標題。 – umka

回答

0
mail($to,utf8_decode($subject),utf8_decode($message),utf8_decode($headers)); 
+0

使用後,我有這樣的東西: Tre ?? wiadomo?ci: –

+0

這個答案有很大的改進空間。你能解釋爲什麼你認爲這會有幫助嗎?爲什麼UTF解碼的東西會改變任何東西?在不相關的說明中,這是回答問題的適當方式,我已投票拒絕您提出的編輯問題。在這個問題中增加一個解決方案混淆了其他可能看待這個問題的人。 – HPierce