Назад | Перейти на главную страницу

Подключиться к IMAP-серверу, перейти в конкретную папку, подсчитать строку в сообщениях

У нас есть внешняя система, которая время от времени дает сбой. У нас нет прямого доступа к журналам этой системы, все, что мы получаем, - это ежедневные сообщения о статусе, доставляемые в наш почтовый ящик с указанием неудачи или успеха. Теперь мы пытаемся подсчитать сообщения об ошибках и успехах, чтобы как-то измерить надежность.

Если бы у нас был доступ к журналам, это было бы довольно просто, используя grep, wc и тому подобное. Но все, что у нас есть, это куча писем.

Теперь вот вопрос: может ли кто-нибудь придумать способ подключиться к imap-серверу, перейти в определенную папку, получить все сообщения и подсчитать определенную строку? (желательно bash, python или perl). Мы не ожидаем точной команды. Некоторые идеи для начала были бы замечательными.

Я бы использовал Python и imaplib. Этот пример imaplib подключается к почтовому ящику и получает все сообщения. Тело сообщения доступно в этом цикле, поэтому вы можете выполнить любое сопоставление с шаблоном, которое захотите. Вы даже можете просто (хотя и расточительно) просто запустить этот скрипт и использовать на нем свои знакомые инструменты. (Я говорю «хотя и расточительно», потому что пример сценария читает все сообщения в почтовом ящике каждый раз, когда он запускается.)