[SMTP] Вычислить длительность доставки письма из его заголовка

Дмитрий Н.

Новичок
Всех приветствую.

Предо мной поставлена задача вычисления длительности доставки писем от отправителя (О) до получателя (П), причём О может пользоваться любыми почтовыми серверами, а к серверу П имеется доступ по IMAP.

Функция imap_headerinfo возвращает объект с основной частью данных заголовка, где есть поля:
date - дата отправки письма
udate - дата в unixtime
В этом моменте и возник вопрос, что на самом деле представляет из себя udate? При тестировании на нескольких различных почтовых сервисах, от яндекса до яху, разница между этими полями составляет от 4-х до 5-ти сеунд, что вроде-бы похоже на время прохождения письма по цепочкам MTA, но терзают смутные сомнения...

Смотрел вывод другой функции imap_fetchheader, где возвращаемое значение представлено в виде строки из всех полей заголовка, где присутствуют поля Received, в количестве нескольких штук, в которых указаны временные метки получения письма данным конкретным MTA. Теоретически можно парсить их, выбирая максимальное время и вычитать из него значение поля Date. Но выглядит это заморочено...

Какие ещё можно попробовать методы для решения данной задчи?
 

AnrDaemon

Продвинутый новичок
Ты не туда смотришь.
Тебе нужны заголовки Received. Самый нижний(первый) - отсылка письма отправителем.
Самый верхний - получение письма сервером получателя.
но в любом случае эти данные могут использоваться только в целях обучения.
Поскольку никто не ответит тебе, какие из этих заголовков не были подделаны.
 
Сверху