Я посмотрел, как моя учетная запись GMail отправила его, и обнаружил, что он использует windows-1252
для кодировки, а текст закодирован в base64 (это может быть не так при использовании других учетных записей GMail).Письмо, которое я отправил ниже, было успешно отправлено tumblr, и я использовал функцию utf8_decode для генерации правильной строки base64.
$data = wordwrap(base64_encode(utf8_decode($stringWithSpecialCharacters)));
Необработанное сообщение электронной почты ниже:
To: myuploademail@tumblr.com
Subject: tumblr post from sudocode
from: omime class <script@sudocode.net>
MIME-Version: 1.0
Content-type: multipart/alternative;
boundary=omime_1308940625_c0d4e36fd504619028804e8b23ceb12a
--omime_1308940625_c0d4e36fd504619028804e8b23ceb12a
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: base64
38TW+eLq7vT76//mP9nCys4=
--omime_1308940625_c0d4e36fd504619028804e8b23ceb12a
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: base64
38TW+eLq7vT76//mP9nCys4=
--omime_1308940625_c0d4e36fd504619028804e8b23ceb12a--
Я использовал свой omime класс для отправки электронного письма, и вот код, который я использовал:
$email = new omime('alternative');
$email->attachText('ßÄÖùâêîôûëÿæœÙÂÊÎ');
$email->attachHTML('ßÄÖùâêîôûëÿæœÙÂÊÎ');
$email->send('mysecretuploademail@tumblr.com', 'test tumblr post', 'from: omime class <script@sudocode.net>');