У меня есть сообщения в кодировке MIME (в Maildir), в которых есть оба заголовка в кодировке base64 (решено с помощью скрытого вопроса ( Декодировать заголовок письма UTF8 ), декодировать ('MIME-заголовок', $ val), основной текст в виде простого текста и данные в текстовом / обычном формате base64 в теле;
Говорят, что данные base64 кодируются в utf-8. Однако, когда я делаю:
use MIME::Base4;
..
$decoded = decode_base64($block_from_line_array); # MIME body extracted from message's
$msgtext .= $decoded;
..
print decode('utf-8', $msgtext);
Кажется, что блок декодирован неправильно.
print decode('utf-8', $msgtext); works ok, when message body is in utf-8
Attach:
X-Priority: 3
X-Mailer: PHPMailer (phpmailer.sourceforge.net) [version 2.0.4]
X-Mailer: http://www.we.praise.buggy.php.scripts.what.we.do.when.we.dont.do.us
X-MessageID: 140
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="b1_16819d4d69564bfc0185ed5b9508ad31"
<Here the body begins -- mhambra>
--b1_16819d4d69564bfc0185ed5b9508ad31
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64
<MIME BLOCK>
Известно, что сообщение правильно отображается в GMail.