POP3 через сокеты, проблемы с чтением письма с кириллицей

vital

Guest
POP3 через сокеты, проблемы с чтением письма с кириллицей

Пишу почтового робота. IMAP не поддерживается, потому -- через сокеты. Проблема в том, что при наличии кириллицы в тексте сам текст письма не забирается полностью, только до первой (включительно) строки с кириллицей (точнее до строки с закодированной quoted-printable кириллицей). Кто сталкивался с подобным, помогите! Код с сокращениями -- ниже.

PHP:
$host = 'mail.zhlobin.org';
$user = 'user';
$password = 'password';

$fp = fsockopen($host, 110, $errno, $errstr, 30);
if (!$fp)
{
    echo "$errstr ($errno)<br />\n";
}
else
{
    fwrite($fp, "USER ".$user."\r\n");
    $res = fread($fp, 255);
    if (strpos($res, '+OK') !== false)
    {
    	fwrite($fp, "PASS ".$password."\r\n");
		$res = fread($fp, 255);
		if (strpos($res, '+OK') !== false) // Вход выполнен
		{
			fwrite($fp, "STAT\r\n");
			$res = fread($fp, 255);
			if (strpos($res, '+OK') !== false)
			{
				if (eregi('\+OK ([0-9]+) ', $res, $regs))
				{
					$mess_count = $regs[1]; // Количество пришедших писем
					if ($mess_count > 0)
					{
						for ($mess_number = 1; $mess_number <= $mess_count; $mess_number++)
						{
							$reply_message = '';
							fwrite($fp, "RETR $mess_number"."\r\n");
							$res = fread($fp, 5120); // 5 КБ максимум
// ВОТ В ЭТОМ МЕСТЕ НЕ МОГУ ПОЛУЧИТЬ ТЕЛО ПИСЬМА ПОЛНОСТЬЮ!!!
							fwrite($fp, "DELE $mess_number"."\r\n");
							$res = fread($fp, 255);
							if (!empty($reply_message) && !empty($mess_from)) to_mail($mess_from, 'robot:RE:', $reply_message);
						}
					}
				}
			}
			fwrite($fp, "QUIT\r\n");
			$res = fread($fp, 255);
		}
    }
    fclose($fp);
}
 

WMix

герр M:)ller
Партнер клуба
сколько считал столько получил!!
 

vital

Guest
Автор оригинала: WMix
сколько считал столько получил!!
Пятью килобайтами там и не пахнет, 1КБ с копейками...
Причём с латиницей проблем нет, повторюсь.

-~{}~ 14.09.05 19:22:

Прошу прощения, проблема решилась ожиданием точки, завершающей многострочный ответ POP3-сервера, а не EOF.
 
Сверху