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

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



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