У меня есть скрипт с циклом, который загружает сообщения с одного сервера и загружает их на другой.Я бы не хотел тратить время на вызовы imap_fetchbody
и imap_append
, если сообщение уже существует в получателе.Есть ли что-то, что я могу использовать в "message_not_existing_in_target"?
$source_imap = imap_open(...);
$target_imap = imap_open(...);
...
if (message_not_existing_in_target) {
$message = imap_fetchbody($source_imap, $i, '', FT_PEEK);
imap_append($target_imap, $mbox, $message);
}
Как минимум, мне нужно:
$message = imap_fetchbody($source_imap, $i, '', FT_PEEK);
if (message_not_existing_in_target)
imap_append($target_imap, $mbox, $message);
Поскольку загрузка имеет тенденцию быть медленнее, чем загрузка.
Я хотел бы упомянуть, что некоторые службы IMAP, такие как Gmail, по-видимому, имеют свою собственную внутреннюю проверку на дублирование - они просто возвращают TRUE без фактического сохранения дублированного сообщения.Но сообщение должно быть загружено, чтобы быть обнаруженным как дубликат, поэтому оно все еще неэффективно.