Hotmail отправляет письма в нежелательные из-за несоответствия кодировки самого письма (KOI8-R) и его тела. Заголовки to, subject, from отображаются нормально. Страница с формой в UTF-8.
$data_charset = 'UTF-8'; // кодировка переданных данных
$send_charset = 'KOI8-R'; // кодировка письма
$to = mime_header_encode($name_to, $data_charset, $send_charset). ' <' . $email_to . '>';
$subject = mime_header_encode($subject, $data_charset, $send_charset);
$from = mime_header_encode($name_from, $data_charset, $send_charset).' <' . $email_from . '>';
if($data_charset != $send_charset) {
$body = iconv($data_charset, $send_charset, $body);
}
В исходном коде письма отображаются крякозябры "ëÏÎÔÁËÔÙ".
Декодер Лебедева говорит: CP1252 → KOI8-R.
Ок. Делаю замену как
предлагает Ogra:
- $body = iconv($data_charset, $send_charset, $body);
+ $body = iconv('utf-8', 'cp1252', $body);
+ $body = iconv('cp1251', 'KOI8-R', $body);
Теперь тело сообщения вообще пустое.
Причем $body теряется при utf-8=>cp1252.
Заголовки письма:
$headers = "From: $from\r\n";
$headers .= "Reply-To: support@example.com\r\n";
$headers .= "Return-Path: support@example.com\r\n";
$headers .= "X-Mailer: Drupal\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= "Content-type: text/plain; charset=$send_charset; format=flowed\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";