Работа с почтой средствами PHP

Работа с почтой средствами PHP
Часть первая.
Мы не будем разбирать как работать с функцией mail)
Сегодня разберем синтаксис pop протокола и как получить информацию о письмах на почтовом сервере.
Работать будем с помощью сокетов.
Подключение к серверу:
1 2 3 4 5 6 7 8 | //Переменные которые нам понадобятся $server="pop.bk.ru"; $port= 110; $user='user_name'; $pass='password'; $mail = fsockopen($server,$port, $errno, $errstr, 10); print fgets($mail, 1024); |
если все удачно сервер вернет
1 | +OK |
Теперь пора авторизироваться, для этого посылаем запрос с именем пользователя на сервер:
1 2 | fputs($mail, "USER $user\r\n"); print fgets($mail, 1024); |
если все удачно сервер вернет
1 | +OK |
Теперь отправляем пароль:
1 2 | fputs($mail, "PASS $pass\r\n"); print fgets($mail, 1024); |
если все удачно сервер вернет
1 | +OK |
Собственно все, авторизация прошла успешно, теперь вы на сервере)
Давайте посмотрим что мы можем получить с сервера, например статистика:
1 2 | fputs($mail, "STAT\r\n"); print fgets($mail, 1024); |
если все удачно сервер вернет
1 | +OK 2 12288 |
Данная строка гласит, что на сервере 2 письма общим весом 12288
Давайте посмотрим что именно за письма на сервере, для этого отправим запрос
1 2 | fputs($mail, "LIST\r\n"); print get_data($mail); |
Результат:
1 2 3 4 | +OK 2 messages (12288 octets) 1 10790 2 677 . |
Так же можно получить детальную информацию лишь по одному письму, для этого надо вызвать LIST с аргументом в виде номера письма:
1 2 | fputs($mail, "LIST 2\r\n"); print fgets($mail); |
Результат:
1 | +OK 2 677 |
Можно получит заголовки письма, например что бы узнать кодировку или отправителя:
1 2 | fputs($mail, "TOP 1 5\r\n"); print get_data($mail); |
Результат вернет 5 строк из первого письма
Удаление письма:
1 2 | fputs($mail, "DELE 2\r\n"); print fgets($mail); |
Данный запрос пометит на удаление 2-е письмо, окончательно он будет удалено лишь после завершения работы с сервером.
снять все пометки на удаление можно послав следующий запрос:
1 2 | fputs($mail, "RSET\r\n"); print fgets($mail); |
Детальный просмотр сообщения:
1 2 | fputs($mail, "RETR 1\r\n"); print get_data($mail); |
Ну и на конец завершение работы:
1 2 | fputs($mail, "QUIT\r\n"); fclose($mail); |
Напоминая что завершать работ обязательно, иначе письма помеченные на удаления не будут удалены.
П.С.: когда будите экспериментировать с протоколом, советую завести специальную почту, которую не жалко угробить)
Или вы можете узнать как создать свой сайт самостоятельно
Но влюбом случае вам понадобится качественный Хостинг - компания www.StarsHost.ru
5 комментариев на Работа с почтой средствами PHP
Ваш отзыв
Классификатор
- JS (1)
- PHP (16)
- блогинг (4)
- Блогообзор (2)
- Веб-мастеру (11)
- интересное (19)
- Мой скрипт (10)
- Новости (12)
Теги
Поиск
Комментарии
- Александр Борисов к записи Постовой — плагин для WordPress
- sidash к записи Постовой — плагин для WordPress
- Alexander к записи Постовой — плагин для WordPress
- LaaCrus к записи Старт блогообзора
- ИстинА к записи Работа с почтой средствами PHP



Здравствуйте.
Очень интересная статья.
Но меня интересует, не собираетесь вы случайно написать про протокол IMAP? Я бы с удовольствием почитал бы.
Прикольно! А как получить заголовок письма, это уже будет более значительно.
Понравилось, пиши еще!
web-junior, идея интересная, думаю я ее затрону в ближайшее время
Спасибо, буду ждать статью с нетерпением!
так просто оказывается)
напишу себе локальный клиент..