Решение проблемы тем писем в PHP

Евгений21 год в сервисе
Данные заказчика будут вам доступны после подачи заявки
07.11.2008

Есть функция отправки писем на 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, решающий эту проблему.

Заявки фрилансеров