Как провести мониторинг доставляемости письма?

Ситуация такая: есть почтовый сервер Exchange 2010 и есть на нем почтовый ящик user@mydomain.ru, также есть внешний почтовый ящик, например, user@gmail.com
Стоит задача: каким либо образом мониторить письмо отправленное на user@gmail.com c ящика user@mydomain.ru (и обратно), а в частности необходимо получить время за которое это письмо дошло от моего почтового сервера до сервера gmail.com ( и желательно обратно)
Задача должна выполняться, например, с интервалом 1 раз в 10 минут и таким образом предоставить мне полную картину доступности сервера на прием/ получение (нужно получить логи) и аналитику быстроты прохождения/доставки письма.
Поделитесь соображениями на этот счет, возможно ли это реализовать и если да, то каким образом? Заранее всем благодарен за ответ.
  • Вопрос задан
  • 10427 просмотров
Пригласить эксперта
Ответы на вопрос 5
@bugman
1) У ексченжа есть логи? они вменяемы? их парсить можно?
2) Посылать на шедулере тестовое письмо с локального эксченжа на свой же тестовый ящик на гмэейле, на другом шедулере консольным мэйл клиентом проверять время прихода письма.
Все это прикрутить к нагиосу или ему подобным (какти, заббикс и т.п.)
Ответ написан
Комментировать
alekciy
@alekciy
Вёбных дел мастер
Что мешает просмотреть заголовки? Там можно найти не только путь письма между хостами, но и время. Первое выдернутое письмо с gmail:

Delivered-To: public-mail@alekciy.ru
Received: by 10.220.34.205 with SMTP id m13csp113897vcd;
Mon, 30 Jul 2012 09:27:43 -0700 (PDT)
Received: by 10.112.103.130 with SMTP id fw2mr5553698lbb.107.1343665662728;
Mon, 30 Jul 2012 09:27:42 -0700 (PDT)
Return-Path: <wwwrun@my.phpclub.info>
Received: from my.phpclub.info (my.phpclub.info. [79.137.227.42])
by mx.google.com with ESMTPS id sq3si13782787lab.17.2012.07.30.09.27.42
(version=TLSv1/SSLv3 cipher=OTHER);
Mon, 30 Jul 2012 09:27:42 -0700 (PDT)
Received-SPF: pass (google.com: domain of wwwrun@my.phpclub.info designates 79.137.227.42 as permitted sender) client-ip=79.137.227.42;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of wwwrun@my.phpclub.info designates 79.137.227.42 as permitted sender) smtp.mail=wwwrun@my.phpclub.info
Received: from wwwrun by my.phpclub.info with local (Exim 4.71)
(envelope-from <wwwrun@my.phpclub.info>)
id 1Svspv-0004ZU-3b
for public-mail@alekciy.ru; Mon, 30 Jul 2012 20:28:51 +0400
Message-Id: <E1Svspv-0004ZU-3b@my.phpclub.info>
To: alekciy <public-mail@alekciy.ru>
Subject: =?utf-8?Q?=D0=9E=D1=82=D0=B2=D0=B5=D1=82=20=D0=B2=20?= =?utf-8?Q?=D0=BE=D1=82=D1=81=D0=BB=D0=B5=D0=B6=D0=B8=D0=B2=D0=B0=D0=B5=D0=BC=D0=BE=D0=B9=20?= =?utf-8?Q?=D1=82=D0=B5=D0=BC=D0=B5:=20?= =?utf-8?Q?=D0=9F=D0=B0=D0=B3=D0=B8=D0=BD=D0=B0=D1=86=D0=B8=D1=8F=20?= =?utf-8?Q?=D0=B8=20?= =?utf-8?Q?=D0=BF=D1=80=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20?= =?utf-8?Q?LIMIT=20=D0=BD=D0=B0=20?= =?utf-8?Q?=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B8=D1=85=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=B0=D1=85.?=
X-PHP-Originating-Script: 1000:Sendmail.php
From: =?utf-8?Q?PHPClub=20-=20=D0=BA=D0=BB=D1=83=D0=B1=20?=
=?utf-8?Q?=D1=80=D0=B0=D0=B7=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=87=D0=B8=D0=BA=D0=BE=D0=B2=20PHP?= <phpclub@rambler.ru>
Date: Mon, 30 Jul 2012 16:28:51 +0000
Content-Type: multipart/alternative;
boundary="=_522558b722c1cab84a58b6dfc0ffb690"
MIME-Version: 1.0
Sender: WWW daemon apache <wwwrun@my.phpclub.info>
Ответ написан
alekciy
@alekciy
Вёбных дел мастер
>И не очень понятно как отслеживать время прохождения письма от локального
>хоста до сервера-получателся в инете.

Если доступа до сервера получателя нет (до логов или конкретного ящика), а его ведь нет, так, то ответ — ни как. Нельзя узнать, когда письмо было доставлено адресату.

Но если отправку письма мы делаем со своего сервера, то по логам можно хотя бы узнать что 1) письмо было доставлено на уполномоченный сервер (или был получен отказ и указана причина); 2) время доставки. Но когда оно дойдет по внутренней сети до адреса узнать снаружи не получится.
Ответ написан
Комментировать
ekungurov
@ekungurov
Читать здесь и здесь. С другой стороны, ну увидите вы вдруг, что письма от вас до gmail доходят не за пару минут, а, допустим, за полчаса. Что делать-то будете?
Ответ написан
Комментировать
volanddt
@volanddt Автор вопроса
Мысль такая есть: допустим есть почтовый клиент который пишет логи в открытом виде о приходе/уходе письма т.е. письмо уходит в мир (фиксируется время отправки) и по pop3 забирается с сервера (фиксируется время прибытия). пишется парсер для таких логов и фиксируется разница во времени. Только я такой почтовый клиент не знаю, который пишет логи в таком виде. Может кто подскажет?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы