парсинг сообщений из sendmail. русская кодировка

kolyaiks

Новичок
Добрый день.
Не читаются русские символы во входящем письме.

Что делается: сообщение пришдшее в sendmail передается на скрипт.
Скрипт читает вывод 'php://stdin' и затем пишет его в лог.
Проблема в том, что русские символы в тексте письма отображаются в следующем виде:
18HT0Txicj4K
Как заставить скрипт писать текст по-русски?

листинг ниже.

PHP:
$message = "";
$stdin = fopen('php://stdin', 'r');

while($line = fgets($stdin)) {

$message .= "$line";
        }

fclose($stdin);


$fd=fopen("/var/www/html/log.log", "a");

fwrite($fd,"\n--------------------\n");
fwrite($fd,$message);

fclose($fd);

Письмо логируется так:

Content-Type: text/plain; charset=KOI8-R
Content-Transfer-Encoding: base64

18HT0Qo=
--485b397dcfb3f9766e04cde295e3
 

kolyaiks

Новичок
Спасибо за ответ!
Попробовал imap_base64() и base64_decode(), в выводе теперь мрак такого вида:

O..*G
b.R=.$.|bw0.\q..g.ɤ..|.fg.G.y.+.'m....e....1...N......2.D9....b..].M....Z....¹.6.=\....Ƈ
..!3.+{[email protected]~.6.Ӎ.....p.k.#.....ƥ.F.A..J.Sn@..!.%..
N....)
.t.Ĉ..ˍ..b.{......=.....)D.D......
....<br>
 

fixxxer

К.О.
Партнер клуба
:) не получится

надо сначала вытащить то, что между boundaries

где-то там в imap* должны быть соответствующие функции, но можно и руками
 

vpupkin97

Новичок
PHP:
$msg_b64='18HT0Qo=';
$msg=base64_decode($msg_b64);
echo($msg);
Осталось только вытянуть $msg_b64 :).
 

Фанат

oncle terrible
Команда форума
То, что твой редактор показывает точки, к РНР отношения не имеет
 

Фанат

oncle terrible
Команда форума
а зачем её определять, если она и так указана. в твоем же собственном посте
 
Сверху