Как получать почту только после определенной даты и времени через переполнение стека IMAP

Я пишу для функции извлечения почты IMAP. Хочу показать

`$now = time(); // current time

$mailbox = '{192.168.150.11:143/imap/novalidate-cert}';
$mbox = imap_open($mailbox, 'username', 'password'); // log in to mail server

if (!$mbox)
echo ('Failed opening mailbox<br>' . print_r(imap_errors(), true)); // remove the  print_r for production use
else
{
$box = imap_check($mbox); // get the inbox

for ($imap_idx = 1; $imap_idx <= $box->Nmsgs; $imap_idx++) // loop through the messages
{
$headers = imap_headerinfo($mbox, $imap_idx); //
$raw_headers = imap_fetchheader($mbox, $imap_idx); //
$selected_headers = '';
$text_part = '';
$html_part = '';
$original_message = imap_body($mbox, $imap_idx); // save the copy of the entire thing, attachments and all

// build selected headers string
for ($ii = 0; $ii < count($headers->from); $ii++)
$selected_headers .= 'From: ' . $headers->from[$ii]->mailbox . '@' . $headers->from[$ii]->host . "\n";
for ($ii = 0; $ii < count($headers->to); $ii++)
$selected_headers .= 'To: ' . $headers->to[$ii]->mailbox . '@' . $headers->to[$ii]->host . "\n";
for ($ii = 0; $ii < count($headers->cc); $ii++)
$selected_headers .= 'Cc: ' . $headers->cc[$ii]->mailbox . '@' . $headers->cc[$ii]->host . "\n";
for ($ii = 0; $ii < count($headers->bcc); $ii++)
$selected_headers .= 'Bcc: ' . $headers->bcc[$ii]->mailbox . '@' . $headers->bcc[$ii]->host . "\n";
if (!empty($headers->date))
$selected_headers .= 'Date: ' . $headers->date . "\n";
if (!empty($headers->subject))
$selected_headers .= 'Subject: ' . $headers->subject . "\n";

Теперь мой вопрос заключается в том, что я хочу получать письма после определенной даты и времени. Как я могу это сделать?

0

Решение

Я думаю, что здесь есть языковой барьер, поэтому я попытаюсь ответить дважды для вас, задав два четких вопроса и ответив на них оба — которые, мы надеемся, покроют вашу проблему.

  1. «Я хотел бы, чтобы мой скрипт PHP проверял наличие новых писем в фиксированную дату — т.е. 5 июля 2015 года».

Для этого вам нужно использовать метки времени UNIX. Это число, которое увеличивается с каждой 1970 года раз в секунду. Это означает, что с 1970 года прошло 1412746422 секунды, и из этого мы можем вывести дату и время. Я оставлю тебя читать о том, как реализовать это в вашем PHP-скрипте — так работает функция date.

  1. «Я бы хотел, чтобы мой PHP-скрипт проверял наличие новых писем на регулярной основе, то есть раз в час».

Наиболее практичный способ реализовать это — использовать CRON, если вы работаете на * nix сервере. Поиск работы CRON в Google. Проще говоря, вы создадите скрипт PHP, который запускается вашим сервером с заданным интервалом (например, каждый час) — это не определено в скрипте PHP, а скорее на сервере. Существует множество ресурсов по настройке CRON, и мы ничего не знаем о вашей среде, поэтому я не буду давать вам ссылку.

В будущем я мог бы предложить уделить немного времени, чтобы предоставить в своем ответе больше информации, которая, по вашему мнению, является актуальной. Возможно, если английский не является вашим родным языком, попробуйте написать концепцию несколькими способами — или еще лучше, укажите причину, по которой вам нужно что-то, чтобы работать определенным образом, и мы сможем помочь на этом основании. ,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]