邮件正文没有编码correctlly

问题描述:

我有一个wev网站发送电子邮件的表单。不幸的是,今天我收到了一封来自客户的电子邮件,但邮件正文无法读取,因为它无法正确显示cyrilic符号。邮件正文没有编码correctlly

这里是PHP代码:

<?php 
$owner_email = $_POST["owner_email"]; 
$headers = 'From:' . $_POST["email"]; 
$subject = 'Имате съобщение изпратено през формуляра на вашия WEB сайт от ' . $_POST["name"]; 
$messageBody = ""; 

if($_POST['name']!='nope'){ 
    $messageBody .= '<p>Visitor: ' . $_POST["name"] . '</p>' . "\n"; 
    $messageBody .= '<br>' . "\n"; 
} 
if($_POST['email']!='nope'){ 
    $messageBody .= '<p>Email Address: ' . $_POST['email'] . '</p>' . "\n"; 
    $messageBody .= '<br>' . "\n"; 
}else{ 
    $headers = ''; 
} 
if($_POST['state']!='nope'){   
    $messageBody .= '<p>State: ' . $_POST['state'] . '</p>' . "\n"; 
    $messageBody .= '<br>' . "\n"; 
} 
if($_POST['phone']!='nope'){   
    $messageBody .= '<p>Phone Number: ' . $_POST['phone'] . '</p>' . "\n"; 
    $messageBody .= '<br>' . "\n"; 
} 
if($_POST['fax']!='nope'){  
    $messageBody .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n"; 
    $messageBody .= '<br>' . "\n"; 
} 
if($_POST['message']!='nope'){ 
    $messageBody .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n"; 
} 

if($_POST["stripHTML"] == 'true'){ 
    $messageBody = strip_tags($messageBody); 
} 

try{ 
    if(!mail($owner_email, $subject, $messageBody, $headers)){ 
     throw new Exception('mail failed'); 
    }else{ 
     echo 'mail sent'; 
    } 
}catch(Exception $e){ 
    echo $e->getMessage() ."\n"; 
} 
?> 

我新的PHP这样的问题是:

我应该在这个代码改变什么,使其与cyrilic格式的工作?

+1

可编码如UTF-8 – 2013-02-16 11:58:23

$headers = ...行后补充一点:

$headers .= "\n".'MIME-Version: 1.0'."\n".'Content-Type: text/html; charset="UTF-8";'."\n".'Content-Transfer-Encoding: 7bit'; 
+0

'Content-Transfer-Encoding:7bit'和'Content-Transfer-Encoding:8bit'有什么区别? – 2013-02-16 12:18:10

尝试

$header .= "\nContent-type: text/plain; charset=\"utf-8\"";

,并保存为UTF-8

这个文件尝试

ヶ辆($ _ POST [ '消息']),而不是只有$ _POST [ '消息']

+0

我尝试过,但现在它不能在所有的工作。当我测试它时,我没有任何消息! – 2013-02-16 12:05:35

\nContent-type: text/plain; charset=\"utf-8\"\nContent-Transfer-Encoding: 8bit添加到您的$header变量的末尾(您可以通过使用.= op爱适易)。

西里尔文字符不以纯ASCII格式存在,所以您需要使用不同的字符编码。