Проверьте Gmail IMAP через PHP для новых сообщений в цикле

Я изучаю приложение для запуска PHP-скрипта на основе новых писем IMAP, поступающих в Gmail. Каков наилучший способ узнать, что новое письмо поступило на учетную запись Gmail в IMAP? Я не могу придумать ничего, кроме как настроить работу cron. Я запускаю PHP + Nginx в Linux (Ubuntu).

Я узнал, что именно это делают разработчики celular компаний для проверки своих клиентов gmail.

Ну, начните нормализовать соединение, затем:

$t1=time();//mark time in $tt=$t1+(60*1);//total time = t1 + n seconds do{ if(isset($t2)) unset($t2);//clean it at every loop cicle $t2=time();//mark time if(imap_num_msg($imap)!=0){//if there is any message (in the inbox) $mc=imap_check($imap);//messages check //var_dump($mc); die;//vardump it to see all the data it is possible to get with imap_check() and them customize it for yourself }else echo 'No new messagens'; sleep(rand(7,13));//Give Google server a breack if(!@imap_ping($imap)){//if the connection is not up //start the imap connection the normal way like you did at first } }while($tt>$t2);//if the total time was not achivied yet, get back to the beginning of the loop 

Вот и все.

Кстати, вот некоторая хорошая информация о том, как работает IMAP. Я хочу сказать, что, поскольку IMAP позволяет фактически использовать какое-то соединение «Live Sync», если вы не хотите настраивать MTA для получения электронной почты (например, меня), поэтому IMAP – реальный вариант для получения «электронной почты pusshed» " тебе.

  • Соединение остается активным от 5 до 10 минут при каждом подключении к вашей электронной почте, если вы не отключите вручную
  • Gmail ограничивает каждую учетную запись 10 одновременными подключениями.
  • Однако учетная запись IMAP проверяет почтовый ящик, а затем сохраняет активный канал на сервере IMAP (IMAP-IDLE) для стандартного отраслевого стандарта за 29 минут до истечения времени ожидания. Если вы установите для параметра «Автовосстановление» значение 20-30 минут, это должно привести к тому, что ваш телефон будет подключен к удаленному ящику IMAP.
  • Когда GMAIL получает электронное письмо, он должен отправить ответ на незанятый сеанс IMAP, и mobiPush должен забрать его почти мгновенно.
  • Все расписания для получения почты Gmail каждые 10 минут, этот параметр будет синхронизировать входящую электронную почту сразу же после ее поступления на серверы Gmail.

Есть только два способа получить информацию из учетной записи электронной почты, подключиться к ней, регулярно ее читать (например, с помощью cron-job) для новых сообщений или отправить электронное письмо на свой собственный сервер, который передает новое письмо, поступающее в PHP-скрипт.

Zend_Mail , часть Zend Framework имеет Zend_Mail_Storage_Imap (который может использоваться без остальной структуры MVC), которая может подключаться к Gmail для опроса учетной записи.