2012-03-15 37 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);