Рецепт №54. Из книги «128 рецептов php»
Перейти к оглавлению
IMAP — протокол для доступа к электронной почте. Через этот протокол можно получать любую информацию о почте пользователя. Для работы с почтовым сервером через протокол IMAP в php существует много функций. В примере используем только несколько основных:
imap_open – открывает соединение с почтовым сервером по протоколу IMAP.
imap_search – осуществляет поиск писем по заданным параметрам, например, «NEW» — найдет все новые. И возвращает массив номеров писем.
imap_header – возвращает заголовки письма по его номеру.
imap_fetchbody – получает содержимое «тела» письма по его номеру.
imap_close – закрывает соединение с почтовым сервером.
imap_last_error – возвращает последнюю IMAP-ошибку.
Пример:
// логин $email = "username@yandex.ru"; // пароль $password = "password"; // соединяемся с почтовым сервером, // в случае ошибки выведем ее на экран $connect_imap = imap_open(" {imap.yandex.ru:993/imap/ssl}INBOX", $email, $password ) or die("Error:" . imap_last_error()); // проверим ящик на наличие новых писем $mails = imap_search($connect_imap, 'NEW'); // если есть новые письма if($mails){ // перебираем все письма foreach($mails as $num_mail){ // получаем заголовок $header = imap_header($connect_imap, $num_mail); // достаем ящик отправителя письма $mail_from = $header->sender[0]->mailbox . "@" . $header->sender[0]->host; echo "От кого: $mail_from <br/>"; // получаем тему письма $subject = $header->subject; echo "Тема письма: $subject <br/>"; // получаем содержимое письма $text_mail = imap_fetchbody($connect_imap, $num_mail, 1); echo "Тело письма: $text_mail <br/>"; echo "<hr/>"; } }else{ echo "Нет новых писем"; } // закрываем соединение imap_close($connect_imap);