Рецепт №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);

(3 оценок, среднее: 4,67 из 5)