ViTYAi2007
Новичок
Соединение с POP3 и через сокеты и чтение тела письма
Здравствуйте!
Работаю с POP3-сервером через сокеты.
Отправляю письмо, подключаюсь к серверу и считываю письмо. Тело письма состоит из нескольких строк:
//24355:091124:900212:++
(2):2050:2009:2009:2065:2071.145:2147:2147:2065:2070:2070:2070:2070:2070:2075:2117.377:2152:2140:2140:2140:2140:2125:2125:2125:2125:50317.522
(1001):36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:878.4
(1002):41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:42.5:42.5:43:43:44:45:46:46:46:46:46:46:1034
(1003):34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:816
(1004):105:105:105:105:105:108:108:108:108:108:108:108:108:108:108:108:108:108:105:105:105:105:105:105:2559
...
(40042):560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560==
Вывожу многострочное тело письма функцией get_data() и командой TOP:
Но выводится следующее:
//24355:091124:900212:++ (2):2050:2009:2009:2065:2071.145:2147:2147:2065:2070:2070:2070:2070:2070:= 2075:2117.377:2152:2140:2140:2140:2140:2125:2125:2125:2125:50317.522 (1001):36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:3= 6.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:878.4 (1002):41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:42.5:4= 2.5:43:43:44:45:46:46:46:46:46:46:1034 (1003):34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:= 34:34:816 (1004):105:105:105:105:105:108:108:108:108:108:108:108:108:108:108:108:10= 8:108:105:105:105:105:105:105:2559
...
(40042):560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:5= 60:560:560:560:560:560:560:560=3D=3D
то есть убрались переносы строк, появились символы "= " (или это и есть переносы, но не там, где надо почему-то), и в последней строке символ "==" заменился на символ "=3D=3D"...
Как можно получить в переменную многострочное тело письма с переносами строк (в том же виде, в каком отправляется), чтобы потом функцией explode() разбить это сообщение на строки для анализа???
Здравствуйте!
Работаю с POP3-сервером через сокеты.
Отправляю письмо, подключаюсь к серверу и считываю письмо. Тело письма состоит из нескольких строк:
//24355:091124:900212:++
(2):2050:2009:2009:2065:2071.145:2147:2147:2065:2070:2070:2070:2070:2070:2075:2117.377:2152:2140:2140:2140:2140:2125:2125:2125:2125:50317.522
(1001):36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:878.4
(1002):41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:42.5:42.5:43:43:44:45:46:46:46:46:46:46:1034
(1003):34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:816
(1004):105:105:105:105:105:108:108:108:108:108:108:108:108:108:108:108:108:108:105:105:105:105:105:105:2559
...
(40042):560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560==
Вывожу многострочное тело письма функцией get_data() и командой TOP:
PHP:
function get_data($soket)
{
$data="";
while (!feof($soket)) {
$buffer = chop(fgets($soket,1024));
$data .= "$buffer\r\n";
if(trim($buffer) == ".") break;
}
return $data;
}
fputs($soket,"TOP 3 109\r\n");
$out = get_data($soket);
echo $out;
//24355:091124:900212:++ (2):2050:2009:2009:2065:2071.145:2147:2147:2065:2070:2070:2070:2070:2070:= 2075:2117.377:2152:2140:2140:2140:2140:2125:2125:2125:2125:50317.522 (1001):36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:3= 6.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:36.6:878.4 (1002):41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:41.5:42.5:4= 2.5:43:43:44:45:46:46:46:46:46:46:1034 (1003):34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:34:= 34:34:816 (1004):105:105:105:105:105:108:108:108:108:108:108:108:108:108:108:108:10= 8:108:105:105:105:105:105:105:2559
...
(40042):560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:560:5= 60:560:560:560:560:560:560:560=3D=3D
то есть убрались переносы строк, появились символы "= " (или это и есть переносы, но не там, где надо почему-то), и в последней строке символ "==" заменился на символ "=3D=3D"...
Как можно получить в переменную многострочное тело письма с переносами строк (в том же виде, в каком отправляется), чтобы потом функцией explode() разбить это сообщение на строки для анализа???