Я использую imap с php, чтобы получить тело моих писем.
С тем, что закодировано до сих пор, я не получаю специальные символы и странное форматирование в конце. Например, если я отправлю себе электронное письмо (с обычным почтовым клиентом, например Apple Mail), в котором говорится:
Тест с символами é à и некоторыми! эта скала.
Что я получаю с php:
Тест с символами = C3 = A9 = C3 = A0 и некоторые! что камень. =
Я пробовал повторно отправить тело через почтовую функцию php с этими заголовками, но я все еще получаю ту же проблему.
$headers="From: [email protected]" . "\r\n" . "MIME-Version: 1.0" . "\r\n" . "Content-type:text/html;charset=UTF-8";
mail($sendTo, $message, $noBody, $headers);
Я пробовал addslashes()
, что тоже не помогло.
Пример моего кода здесь:
$imapLink=imap_open("{".$mailbox."}INBOX",$username,$password);
$mailBoxInfos = imap_check($imapLink);
$mailList = imap_fetch_overview($imapLink,"1:".$mailBoxInfos->Nmsgs);
if(isset($mailList))
{
$numMess = imap_num_msg($imapLink);
while($numMess>0) {
$message = imap_body($imapLink, $numMess);
$numMess --;
}
}
$imapClose = imap_close($imapLink);
Надеюсь, ты сможешь мне помочь!
Заранее спасибо!
Артур
The =XX
вы видите в тексте, называется "Quoted-Printable Content". Он использовался для отображения символа, который не может отображаться в 7-битах.
Вы можете использовать quoted_printable_decode(), чтобы преобразовать его обратно в читаемую строку.
Поэтому это должно работать:
$message = imap_body($imapLink, $numMess);
$message = quoted_printable_decode($message); // <-- add this line
$numMess --;