Ситуация такая: есть почтовый сервер Exchange 2010 и есть на нем почтовый ящик user@mydomain.ru, также есть внешний почтовый ящик, например, user@gmail.com
Стоит задача: каким либо образом мониторить письмо отправленное на user@gmail.com c ящика user@mydomain.ru (и обратно), а в частности необходимо получить время за которое это письмо дошло от моего почтового сервера до сервера gmail.com ( и желательно обратно)
Задача должна выполняться, например, с интервалом 1 раз в 10 минут и таким образом предоставить мне полную картину доступности сервера на прием/ получение (нужно получить логи) и аналитику быстроты прохождения/доставки письма.
Поделитесь соображениями на этот счет, возможно ли это реализовать и если да, то каким образом? Заранее всем благодарен за ответ.
1) У ексченжа есть логи? они вменяемы? их парсить можно?
2) Посылать на шедулере тестовое письмо с локального эксченжа на свой же тестовый ящик на гмэейле, на другом шедулере консольным мэйл клиентом проверять время прихода письма.
Все это прикрутить к нагиосу или ему подобным (какти, заббикс и т.п.)
Т.е. в крон задачу на оправку письма. В другой крон задачу на коннект к gmail (или своем серверу в зависимости от направления) и нахождению этого письма во входящих. Убеждаемся, что 1) оно таки пришло 2) допустимое ли в нем время доставки.
Крон лишь запускает задачу. Программу коннкета к серверу нужно писать на любом доступном языке.
Я когда делал на PHP и ходил на gmail ящик по IMAP. Кстати, напоминаю, что для коннекта к ящику снаружи (не через веб интерфейс), в настройках ящика это нужно явно разрешить. По умолчанию вход по IMAP отключен.
Спасибо за вариант, пока для меня сложна подобная реализация. И не очень понятно как отслеживать время прохождения письма от локального хоста до сервера-получателся в инете.
>И не очень понятно как отслеживать время прохождения письма от локального
>хоста до сервера-получателся в инете.
Если доступа до сервера получателя нет (до логов или конкретного ящика), а его ведь нет, так, то ответ — ни как. Нельзя узнать, когда письмо было доставлено адресату.
Но если отправку письма мы делаем со своего сервера, то по логам можно хотя бы узнать что 1) письмо было доставлено на уполномоченный сервер (или был получен отказ и указана причина); 2) время доставки. Но когда оно дойдет по внутренней сети до адреса узнать снаружи не получится.
Читать здесь и здесь. С другой стороны, ну увидите вы вдруг, что письма от вас до gmail доходят не за пару минут, а, допустим, за полчаса. Что делать-то будете?
Мысль такая есть: допустим есть почтовый клиент который пишет логи в открытом виде о приходе/уходе письма т.е. письмо уходит в мир (фиксируется время отправки) и по pop3 забирается с сервера (фиксируется время прибытия). пишется парсер для таких логов и фиксируется разница во времени. Только я такой почтовый клиент не знаю, который пишет логи в таком виде. Может кто подскажет?