[ОТВЕТИТЬ]
16.05.2018 16:14
OlegON
 
Я люблю все автоматизировать, теперь очередь дошла до бесконечных "Письмо не может быть доставлено". Форум рассылает сообщения, а пользователи не удосуживаются вписать правильный адрес. До сего момента я печально скармливал адрес из отлупа в батник, который пользователю сносил адрес вообще. Для автоматизации потребовалось проверять почту, чтобы не пересекаться с основными клиентами - через IMAP, а поскольку форум на PHP, то и выполнять надо было все в PHP.

Итак, просмотр почты (основной костяк для упрощения):

Код:
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'olegon@olegon.ru';
$password = 'password';

if ($imap = imap_open($hostname, $username, $password))
{
	// Проверка входящих
	if ($messages = imap_search($imap 'ALL'))
	{
		// Сортировка, новые вперед
		rsort($messages);

		// Цикл по сообщениям
		foreach ($messages as $message_number)
		{
			// Вытаскиваем сводку и тело письма
			$overview = imap_fetch_overview($imap, $message_number, 0);
			$message  = imap_fetchbody($imap, $message_number, 2);

			var_dump($overview, $message);
		}
	}
	else
	{
		exit('No messages on the IMAP server.');
	}
}
else
{
	exit('Unable to connect to the IMAP server.');
}
Для работы должен быть установлен php-imap.rpm (НЕ php-pear-Net-IMAP), ну и не забывайте о всевозможных кодировках. Вместо поиска ALL в search можно использовать разные выражения:


ALL - возвращать все сообщения, соответствующие остальным критериям
ANSWERED - сообщения с выставленным флагом \\ANSWERED
BCC "string" - сообщения в поле Bcc: которых присутствует "string"
BEFORE "date" - сообщения с Date: до "date"
BODY "string" - сообщения содержащие "string" в теле
CC "string" - сообщения в поле Cc: которых присутствует "string"
DELETED - удаленные сообщения
FLAGGED - сообщения с установленным флагом \\FLAGGED (иногда называют "Срочное" или "Важное")
FROM "string" - сообщения в поле From: которых присутствует "string"
KEYWORD "string" - сообщения с ключевым словом "string"
NEW - новые сообщения
OLD - старые сообщения
ON "date" - сообщения с Date: равным "date"
RECENT - означает сообщения с выставленным флагом \\RECENT
SEEN - прочтенные сообщения (установлен флаг \\SEEN)
SINCE "date" - сообщения с Date: после "date"
SUBJECT "string" - сообщения в поле Subject: которых присутствует "string"
TEXT "string" - сообщения с текстом "string"
TO "string" - сообщения в поле To: которых присутствует "string"
UNANSWERED - неотвеченные сообщения
UNDELETED - не удаленные сообщения
UNFLAGGED - сообщения без установленных флагов
UNKEYWORD "string" - сообщения, не имеющие ключевого слова "string"
UNSEEN - непрочтенные сообщения

Сам поиск описан в RFC2060, п. 6.4.4.
Опции темы


Часовой пояс GMT +3, время: 15:26.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.