![]() |
Как прочитать письма на мейл сервере из PHP?
|
Зависит от того по какому протоколу он (сервер) предоставляет доступ. Если POP3, то подойдёт Net_POP3 из PEAR, если IMAP, то Net_IMAP оттуда же.
Либо можно взять/посмотреть inc/class.uebimiau_mail.php из почтового клиента UebiMiau (google it). Он дружит с обоими протоколами, и не требует PEAR совсем. Добавлено: Забыл третий вариант: читать RFC и писать реализацию клиентского протокола самому, используя сокеты и иже с ними. Хотя, думаю, он и так будет отвергнут... |
ivank
черт чегото я с тормозил.... в PHP есть встроенные функции для работы с IMAP причем скорее всего у меня есть доступ по этому протоколу к почтовому ящику.... тогда возникает другой вопрос - где взять imap сервер для тогочтобы все это можно было тестировать на локалхосте? |
ivank
как не странно, но я решил писать все сам, RFC я прочитал, там нет ничего сложного! |
Vlad Drakula насколько я тебя знаю - не странно :) и ихмо правильно, а ivank, просто пошутил.
В POP3 протоколе мало сложного. Развлекон начинается в кодировках, mime и прочих RFC на те же темы. А если использовать IMAP, то встроенные функции языка, как вкомпиленные *:) работать будут скорее всего эффективнее, чем свои. [s]Исправлено: mar, 10:45 18-06-2004[/s] |
сейчас пишу маленький скрипт...
научился коннектиться и начал забирать почту... но вот только по непонятной причине я не могу дочитать письмо до конца, т.е. 3/4 прочитал, а потом сервер повис.... может кто с таки м сталкивался? PS в качестве мейл сервера я использую UUCP Добавлено: ivank а куда нужно обратиться за получением уникального статуса? |
Vlad Drakula
послушай, uucp э-э-э, как бы это сказать помягче, немножко не очень широко в наше время используемый протокол. Его мягко говоря, мало где сейчас используют. Причем машины, которые раздают почту по uucp/uupc сами ее благополучно выкидывают/получают по smtp/pop3 (если ты работаешь с соответствующим сервером СПбГУ - то его все вышесказанное касается напрямую) Это я к тому, что с uucp разобраться, конечно полезно и почетно, но по нечетным лучше smtp/pop3 заняться :) |
mar
под UUCP я имел ввиду локалный сервер который заведует у меня почтой. К нему я коннекчусь по POP3. |
понятно :) я уж решила восхититься :) под uucp весьма заморочные строки посылать надо. В более молодых протоколах все намного проще. По поводу отвала сервера: ты решаешь задачу со слишком большим количеством неизвестных:
1) стоит у тебя, насколько я понимаю, винда, которая бог знает чем занята и никому ничем не обязана (начиная от шаловливости ее сокетов и кончая тем, что в это самое время какое-нибудь приложение выполнило недопустимую... далее по тексту 2) на ней какой-то (судя по всему uuconnect? или нечто подобное сервачек) Он вообще никому ничего не обязан. 3) и ты на всем этом сыром хозяйстве пытаешься отладить еще сырую программу. (Помнится, когда мы писали маленький сишный почтовый сервер под *nix, мне для полноты картины захотелось скомпилировать (с соответствующими изменениями, конечно, все это под windows. Я уже не помню, чем дело кончилось, но поначалу под винды среди прочего всякий мусор в сокет лез :( А под unix все было хорошо: причем и под FreeBSD, и под Linux ) Может быть с чем-то подобным твои задержки и связаны. Ну и в-четвертых, сейчас придет Prisoner и выгонит всех в программирование :gigi: |
mar
все это я уже знаю, завтра буду разговаривать с человеком который писал нечто подобное на похожей системме но на ASP.NET mar я не думаю что Prisoner нас выгонит отсюда, ведь разговор на прямую связан с написанием веб скрипта! |
читал я RFC, но я не понял как понять что письмо уже кончилось... :(
может кто подскажет? |
признак конца письма, если мне не изменяет пямять, \n.\n, (точка на отдельной строчке), ну и заголовки дальше начинаются. Но если ты не парсишь mailbox (те не пишешь pop3 - демон), а общаешься с pop3d, как почтовый клиент, то это дело демона знать, где заголовки, где тела писем и где все это кончается. Там же (в POP3 протоколе) и команды, помнится имеются, типа показать заголовки, показать такое-то письмо и т.д.
|
mar
да там есть команда показать письмо, но.... он выплевывает все это в поток, пока не скачаю все целиком он не воспринимает другие команды, т.е. я должен понять когда письмо закончилось, если я запрошу следующую строчку, то сервер повиснет :( Добавлено: я разобрался, ка это все делается! для тех кому тоже интересно как это все делается привозу листинг простейшего скрипта который подсоединяется в серверу скачивает первое писмо и закрывает соединение. Код:
<html> |
Vlad Drakula
а слабо Цитата:
|
mar
если тебе это интересно то конечно: Код:
<html> |
Vlad Drakula
конечно, интересно :) |
mar
если еще чтонибуть будет интересно, то спрашивай! |
обязательно :biglaugh:
|
Мне тоже интересно :)
Я никогда с почтой не работал Vlad Drakula Такой вопрос: а что нет стандартных каких нибудь функций в ПХП для работы с почтой?? Или хотелось просто что то своё написать??? А данный код я уже скопировал и сохранил. На будущее :) [s]Исправлено: vadimiron, 12:11 21-06-2004[/s] |
vadimiron
в PHP я не нашол функций для работы с POP3, тас есть для работы с SMTP & imap & NNTP если кому интересно то я могу выложить на сеобщее обозрение программу которая организует WWW4MAIL, причем как с почтовым так и с веб интерфейсом. но только у меня нету к ней указаний по установке, очень был бы презнателен если ктонибуть помог их мне написать, дело в том что я развертываю ее даже ни о чем не задумываясь, так что я не знаю что писать в руководстве. кстати с помошью этого простого скрипта понял почему письма с осзоны вешают UUCP. |
|
vadimiron
да там есть фукции имап, я об этом уже писал выше, но это имат а не поп3 у амапа бругой протокол и юругой прот. всатаки это полезно написать самому. к тому же я обнаружил в чем проблеммы с письмами от форума, если не уметь работать с сервером на прямую то это никто никогда не обнаружил бы! |
Цитата:
|
vadimiron
возмодно там гдето и есть чтонибуть про поп3, но я нинашол ни одного упоминания о нем как кроме этого заголовка. грабли на которые я наступал я хочу поделиться с вами личным опытом и предупредить об ошибках которых могло и не быть. первые грабли : на запророс "RETR 1" сервер волне может ответить "+OK" и ничего больше! это надо учитывать! т.е. перед тем как запросить "RETR 1" надо запросить "LIST 1" |
Время: 03:27. |
Время: 03:27.
© OSzone.net 2001-