Списки команд почтового сервера exim

Сегодня я опубликую кучу команд почтового сервера exim для проверки почтовой очереди, удаления почты и grep / search email log. 

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

Бесплатное программное обеспечение, распространяемое в соответствии с условиями Стандартной общественной лицензии (GNU), и оно стремится стать универсальным и гибким почтовым средством с обширными возможностями для проверки входящей почты. Разработан в 1995 году Филиппом Хейзелом в Кембриджском университете.

Если вы используете VestaCP или другую подобную конфигурацию, все журналы exim можно найти в /var/log/exim

/var/log/exim/main.log

1. Чтобы получить подсчитанное сообщение в очереди:

exim -bpc

2. Распечатайте список сообщений в очереди (время в очереди, размер, идентификатор сообщения, отправитель, получатель):

exim -bp

3. Распечатайте сводку сообщений в очереди (количество, объем, самый старый, самый новый, домен и итоги):

exim -bp | exiqsumm

4. Напечатайте, что сейчас делает Exim:

exiwhat

5. Проверка того, как указан адрес электронной почты:

exim -bt mail@domain.com

6. Запустите притворную SMTP-транзакцию из командной строки, как если бы она поступала с данного IP-адреса. Это покажет чеки, ACL и фильтры Exim по мере их применения. Сообщение на самом деле НЕ будет доставлено :

exim -bh XXX.XXX.XX.XX

7. Отобразите все настройки конфигурации exim:

exim -bP

Поиск в очереди с помощью exiqgrep

Exim включает в себя утилиту, которая очень удобна для просмотра очереди, которая называется exiqgrep.

1. Используйте -f для поиска в очереди сообщений от определенного отправителя:

exiqgrep -f @domaincom

2. Используйте -r для поиска в очереди сообщений для определенного получателя / домена:

exiqgrep -r @domain.com

3. Используйте -o для печати сообщений старше указанного количества секунд. Например, сообщения старше 1 дня:

exiqgrep -o 86400 [...]

4. Используйте -y для печати сообщений, которые моложе указанного количества секунд. Например, сообщения менее часа назад:

exiqgrep -y 3600 [...]

5. Используйте -s, чтобы сопоставить размер сообщения с регулярным выражением. Например, 700-799 байт:

exiqgrep -s '^7..$' [...]

Используйте -z для сопоставления только с замороженными сообщениями или -x для сопоставления только с замороженными сообщениями. Есть также несколько флагов, которые управляют отображением вывода.

6. Используйте -i, чтобы напечатать только идентификатор сообщения в результате одного из двух вышеуказанных поисков:

exiqgrep -i [ -r | -f ] ...

7. Используйте -c, чтобы напечатать количество сообщений, соответствующих одному из указанных выше поисков:

exiqgrep -c ...

8. Напечатайте только идентификатор сообщения всей очереди:

exiqgrep -i

Управление очередью

1. Запустите очередь

exim -q -v

2. Запустите запуск очереди только для локальных доставок:

exim -ql -v

3. Удалить сообщение из очереди:

exim -Mrm <message-id> [ <message-id> ... ]

4. Заморозить сообщение:

exim -Mf <message-id> [ <message-id> ... ]

5. Киньте сообщение:

exim -Mt <message-id> [ <message-id> ... ]

6. Доставьте сообщение, независимо от того, заморожено оно или нет, достигнуто ли время повтора или нет:

exim -M <message-id> [ <message-id> ... ]

7. Доставьте сообщение, но только если время повтора достигнуто:

exim -Mc <message-id> [ <message-id> ... ]

8. Принудительно завершить сообщение и отменить его как «отменено администратором»:

exim -Mg <message-id> [ <message-id> ... ]

9. Удалите все замороженные сообщения:

exiqgrep -z -i | xargs exim -Mrm

10. Удалите все сообщения старше пяти дней (86400 * 5 = 432000 секунд):

exiqgrep -o 432000 -i | xargs exim -Mrm

11. Заморозить всю почту в очереди от данного отправителя:

exiqgrep -i -f luser@example.tld | xargs exim -Mf

12. Просмотр заголовков сообщения:

exim -Mvh <message-id>

13. Просмотр тела сообщения:

exim -Mvb <message-id>

14. Просмотр журналов сообщений:

exim -Mvl <message-id>

Журналы почты Exim с Exigrep

Одна почтовая транзакция будет занимать несколько строк в файле, и не каждая строка будет содержать искомую строку поиска. Команда exigrep решает эту проблему, находя строку поиска в транзакциях, а затем тщательно собирает каждую запись журнала в отдельные завершенные транзакции.

1. Поиск сообщений, отправленных с определенного IP-адреса:

exigrep '<= .* \[112.225.12.12\] ' /path/to/exim_log

2. Поиск сообщений, отправленных на определенный IP-адрес:

exigrep '=> .* \[112.225.12.12\] ' /path/to/exim_log

Так вы ищите исходящие сообщения с символом «=>» , которые отправляются на «mail@domain.com». Канал для grep для символа «<=» будет соответствовать только строкам, содержащим информацию об отправителе, адресе «От», IP-адресе отправителя, размере сообщения, идентификаторе сообщения и строке темы, если вы включили запись темы.

3. Генерация и отображение статистики exim из лог-файла:

eximstats /path/to/exim_mainlog

4. То же, что и выше, с менее подробным выводом:

eximstats -ne -nr -nt /path/to/exim_mainlog

5.Чтобы удалить все сообщения в очереди, содержащие определенную строку в теле:

grep -lr 'a certain string' /var/spool/exim/input/ | \sed -e 's/^.*\/\([a-zA-Z0-9-]*\)-[DH]$/\1/g' | xargs exim -Mrm

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

%d такие блоггеры, как: