2012-03-15 39 views
0

如何設置字符集爲UTF-8,影響帶有附件的郵件功能, 海量頭痛我得到的主題,奇怪的問題!編碼字符僅適用於身體

我使用這個發送法語內容(主題+身體)+附加文件。 身體上的角色沒問題,並且顯示的口音很好,但主題上的重音字符只是一團糟。

我通過POST獲取數據(除了附加文件,allready已經在服務器上定義了路徑)。

$email_from = "$Emp->Email"; 
$email_subject = $_POST['email_subject_posted']; 
$email_message = "Nom: $Emp->Nom<br>"; 
$email_message .= "Prénom: $Emp->Prenom<br>"; 
$email_message .= "Tel: $Emp->Mobile<br>"; 
$email_message .= "Email: $Emp->Email<br><br>"; 

$email_message .= stripslashes(strip_tags($lettre)); 
$email_message .= "<br><br>"; 
$email_message .= "Candidature envoyée avec mon compte Example.<br>"; 
$email_message .= "http://www.example.org<br>"; 
$email_message .= "1er Site de l’emploi en Algérie."; 

$email_to = "$email_candidature"; 
$headers = "From: ".$email_from; 
$file = fopen($CVfile,'rb'); 
$data = fread($file,filesize($CVfile)); 
fclose($file); 
$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
$headers .= "\nMIME-Version: 1.0\n" . 
"Content-Type: multipart/mixed;\n" . 
" boundary=\"{$mime_boundary}\""; 
$email_message .= "This is a multi-part message in MIME format.\n\n" . 
"--{$mime_boundary}\n" . 
"Content-Type:text/html; charset=\"utf-8\"\n" . 
"Content-Transfer-Encoding: 7bit\n\n" . 
$email_message .= "\n\n"; 

$data = chunk_split(base64_encode($data)); 

$email_message .= "--{$mime_boundary}\n" . 
"Content-Type: {$CVfile_type};\n" . 
" name=\"{$CVfile_name}\"\n" . 
//"Content-Disposition: attachment;\n" . 
//" filename=\"{$CVfile_name}\"\n" . 
"Content-Transfer-Encoding: base64\n\n" . 
$data .= "\n\n" . 
"--{$mime_boundary}--\n"; 

$ok = @mail($email_to, $email_subject, $email_message, $headers); 

任何輸入是太讚賞。

回答

0

當我的PHP文件編碼與消息編碼不相似時,我遇到了這樣的問題。檢查你的PHP文件的編碼。

0

使用這樣的事情在周圍的mail()函數

'=?UTF-8?B?'.base64_encode($email_subject).'?=' 

讓你受它可能看起來像

@mail($email_to, '=?UTF-8?B?'.base64_encode($email_subject).'?=', $email_message, $headers, '-f'.$email_from);