Решение проблемы тем писем в PHP
Есть функция отправки писем на php.
При выборе кодировки, она перекодирует текст письма:
if($cod=="koi8-r")
{
$body=convert_cyr_string($body,w,k);
$subject=convert_cyr_string($subject,w,k);
}
elseif($cod=="utf-8")
{
$body=iconv('windows-1251', 'utf-8', $body);
$subject=iconv('windows-1251', 'utf-8', $subject);
}
Subject обычно на 2-х языках, пример: Software rejected - программа отклонена
В итоге у всех писем, отправленных моей функцией проблема с заголовками в The Bat!
При получении писем, в диспетчере писем, русская часть темы отображается набором символов - как при неправильной кодировке, а затем после получения письма - все в порядке.
Я сравнил свой заголовок с нормальным, который не искажается, вот так выглядит тема там:
=?koi8-r?Q?=EC=C5=DD=C5=CE=CB=CF_=E9=D7=C1=CE?=
Или так:
=?Windows-1251?B?8fLg8vz/IOTr/yDw4Ofs5fnl7ej/IO3gIOTw8+Po9SDv6+754OTq4PU=?=
Меня интересует объяснение причин, почему заголовок искажается и как он закодирован в нормальных письмах, а также код на PHP, решающий эту проблему.