Ок. Делаю замену как предлагает Ogra:
— $body = iconv($data_charset, $send_charset, $body);
+ $body = iconv('utf-8', 'cp1252', $body);
+ $body = iconv('cp1251', 'KOI8-R', $body);
Теперь тело сообщения вообще пустое.
Причем $body теряется при utf-8=>cp1252.
Не удивительно. Вы, во-первых переводите строку из кодировки с более обширным набором символов (utf-8) в кодировку с менее обширным (cp1252). Во-вторых, переводите строку в кодировку cp1252, которая не содержит русских символов. В-третьих, сначала перекодируете строку в кодировку cp1252, а далее почему-то считаете, что у Вас строка теперь не в кодировке cp1252, а в кодирокве cp1251 и перекодируете уже из неё обратно в utf-8.
Если вкратце, то эта манипуляция с перекодированием не нужна, а декодеру доверять не стоит, т.к. он может иметь большую погрешность.