J'envoie du courrier via PHP avec des caractères chinois de mon serveur de test, et il l'envoie parfaitement. L'encodage est UTF-8. Lorsque je télécharge le même fichier PHP sur un autre serveur et que j'essaie d'envoyer des e-mails à partir de là, 90% d'entre eux vont dans un client de messagerie (GMail), mais dans un autre client de messagerie (Apple Mail) tous les charabia - même lorsque j'essaie de changer l'encodage dans le client de messagerie.Les caractères chinois dans le courrier électronique envoyé par PHP n'apparaissent pas
Je suis coincé ici, parce que tout fonctionne bien sur un serveur mais pas sur un autre. Je ne suis pas sûr de savoir où commencer à chercher des solutions. Ce qui est encore plus déroutant, c'est que sur le serveur de production, l'e-mail semble plutôt correct (cas étrange de certains caractères ne s'affichent pas), mais dans d'autres applications de messagerie, cela ressemble à de la foutaise.
Une idée où je peux commencer à chercher pour résoudre ce problème?
PHP
$books = json_decode ($_POST['books']);
$body = '
<body bgcolor="#999999"><center>
<table width="700" border="0" cellspacing="2" cellpadding="10" bgcolor="#FFFFFF">
<tr>
<td>
你好 ' . $_POST['name'] . ',<br/><br/>以下是你从学习网站,给孩子讲故事课程,所要求的书籍名单<br/><br/><hr noshade="noshade" />
</td>
</tr>
<tr>
<td>';
$iLen = count($books);
for ($i = 0; $i < $iLen; $i = $i + 1) {
$book = $books[$i];
$body .= '<b>' . $book->title . '</b><br/>' . $book->author . '<br/><br/>';
$body .= '简介: ' . $book->synopsis . '<br/>';
$body .= '年龄层: ' . $book->age . '<br/>';
$body .= '场景: ' . $book->setting . '<br/>';
$body .= '目的: ' . $book->purpose . '<br/>';
$body .= '索书号: ' . $book->call . '<br/><br/>';
$body .= '出版商: ' . $book->publisher . '<br/><br/><hr noshade="noshade" />';
}
$body .= '
</td>
</tr>
<tr>
<td>
亲切问侯,<br/>Name
</td>
</tr>
</table>
</center>
</body>
';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: Name <[email protected]>' . "\r\n";
$ok = mail ($_POST['email'], '讲故事给孩子听:您所要求的故事精选书单', $body, $headers);
Résultat
ä∏ å¥∏ ryan,
ä»¥ä¸—æ˘¯ä∏ ä»⁄å–œä’ ç∏Œç«˙,ç»˙å–©å–∆è®”æ∑亗è¯≤稗,æ≈•èœ™æ±≠ç˚≥䒜籟å∆ŸåŸ
瑲瑲æ√Œæ˛≈å¤˚ç√±ä∏
麜å∑—å¸∞é˝·å°π, å±±å§∫
Synopsis: 粗å∂¯ç√±ç˚≥å°∂å∑‰å®ˇå®ˇæ•⁄ä’√牨å®∞ç—¬ç≈’ç˚≥戒åπ∂å‚‘å∑‰åœ√åœ√说å®∞æ˛≈å¤˚ç√±å®∞ã•≠
Age Group: 4 - 6 å”™
Setting: ç≤¤ä∏„
Purpose: ä»·å•πè§≠å‚‘ä¿∞è¿˝äº”å–∆ç˚≥æ≥ƒæ∞∑
Call no: JP MAC
Publisher: 麜å∑—å¸∞é˝·å°π, å±±å§∫. 瑲瑲æ√Œæ˛≈å¤˚ç√±ä∏ .丅海 : 尌咴å≥¿ç«¥åΩºç≈√ç¤≤, 2005.
Vous devriez montrer du code - comment vous définissez l'encodage dans le E-Mail, par exemple, et à quoi ressemble le charabia. –
Se pourrait-il que * votre fichier source PHP * soit codé de manière incorrecte sur le second serveur? Pouvez-vous regarder le fichier sur le serveur distant et assurez-vous que l'encodage du fichier est toujours UTF-8? –