PHP邮件有时显示符号


php mail show sometimes symbols

我正在获取mysql数据并使用php @mail:

$strHeader = "";
$strHeader .= "From:example@example.com'r'n";
    $strHeader .= 'MIME-Version: 1.0' . "'r'n";
    $strHeader .= "Content-Type: text/html; charset=utf-8'r'n"; // or UTF-8 //
    $strHeader .= $strMessage . "'r'n";
    $flgSend = @mail($strTo, $strSubject, null, $strHeader); // @ = No Show Error //
    if ($flgSend) {
        echo "Excel Generated & Email Sending.";
    } else {
        echo "Email Can Not Send.";
    }

现在我得到符号有时,所有的数据都显示正确只是有时它把一个单词中的一个字母变成了。

必须说,当我改变

$strHeader .= "Content-Type: text/html

$strHeader .= "Content-Type: text/plain

没有错误的符号。

任何想法?谢谢,铁道部

我解决了。如果任何一行大于70个字符,我们应该使用wordwrap()例子:

<?php
// The message
$message = "Line 1'r'nLine 2'r'nLine 3";

$message = wordwrap($message, 70, "'r'n");
// Send
mail('caffeinated@example.com', 'My Subject', $message);
?>

尝试使用mb_encode_mimeheader(), check,

http://php.net/manual/en/function.mb-send-mail.php