| Окт, 2005 Сообщений: 2 | leksus url://forum.message:663 Просветите, плз, как пользоватся mail.pop Просмотрел я набор функций для получения почты mail.pop. Насколько я понял, надо сначала юзать функцию _mail_pop_connection_open, потом mail_pop_login. Так? Еще вопрос - что за переменная $data? Я так понял, это массив. Какова его структура? |
Июл, 2004 Сообщений: 1078 | popoff url://forum.message:664 Насколько я понял, надо сначала юзать функцию _mail_pop_connection_open | Функции, имена которых начинаются на “_” - это функции для внутреннего использования этой библиотекой, их нигде вызывать не нужно. Насколько я понял, надо сначала юзать функцию _mail_pop_connection_open, потом mail_pop_login. Так? | Вот Вам функция из библиотеки test.mail моей системы popoff.donetsk.ua/light. Привожу ее без купюр. Думаю, она не слишком большая. Эта функция загружает с сервера список всех сообщений, загружает первые 50 строк из тех сообщений, в заголовках которых есть подстрока, переданная аргументом $header и удаляет с сервера все сообщения (и загруженные, и все остальные). Возвращает массив загруженных писем.
<?php function test_mail_retrive($header='',$print_protocol=false) { $mail=mail_pop_create(); if(!mail_pop_open($mail,TEST_MAIL_POP_HOST,TEST_MAIL_POP_PORT)) { debug_variable($mail,'mail'); test_error('test_mail_retrive','could not open connection'); } if(!mail_pop_login($mail,TEST_MAIL_POP_USER,TEST_MAIL_POP_PASSWORD)) { debug_variable($mail,'mail'); test_error('test_mail_retrive','could not Log In'); } $msg=mail_pop_list($mail,'',false); $res=array(); for($i=0;$i<count($msg);$i++) { if($header) { $r=mail_pop_retrieve($mail,$msg[$i]['msg'],50); if(!$r) { debug_variable($mail,'mail'); debug_variable($r,'r'); debug_variable($i,'i'); test_error('test_mail_retrive','could not retrive message'); break; } for($j=0;$j<count($r['headers']);$j++) { if(strpos($r['headers'][$j],$header)!==false) { $res[]=$r; break; } } } if(!mail_pop_delete($mail,$msg[$i]['msg'])) { debug_variable($mail,'mail'); test_error('test_mail_clear','could not delete'); break; } } if(!mail_pop_close($mail)) { debug_variable($mail,'mail'); test_error('test_mail_clear','could not close connection'); } if($print_protocol) debug_variable($mail,'test_mail_retrive'); return $res; } ?>
Еще вопрос - что за переменная $data? Я так понял, это массив. Какова его структура? | По историческим причинам не полюбилось мне ООП в РНР. Вовсе не потому, что я не знаю, что такое ООП, как работать с объектами и т.п. И даже не потому, что «ООП тормознутее функций» - я вообще сомневаюсь в этом утверждении. Сейчас я не готов толком объяснить, почему. Наверное, основная причина - чтобы везде было одинаково. Нигде нет объектов - значит нигде нет объектов. Однако, не смотря на мою нелюбовь к объектам в РНР, объекты - это часто удобный и естественный способ представления программы и данных. $data следует рассматривать как массив, в котором содержатся все поля объекта для работы с почтой. Его структура задается функцией mail_pop_create(). В целом, Вас из этого массива может заинтересовать только элемент $data['protocol'], в котором содержится протокол общения с сервером. ________________________________ Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить. |
| Окт, 2005 Сообщений: 2 | leksus url://forum.message:670 Спасибо за развернутый ответ. Я уже разобрался что к чему. Жаль, у моего хостера функция fsockopen закрыта на сервере... Бился часа 3 пока не нашел, где собака зарыта. Придется менять хостера. |