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

Дмитрий Н.

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

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

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

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

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