Последние посты
-
Импорт и экспорт базы данных через SSH
08.01.2021 -
Настройка сжатия статического контента сайта в ISPmanager
02.01.2021 -
Устранение ошибки mod_fcgid: HTTP request length при использовании FastCGI
01.01.2021
Полезные команды почтового сервера Exim
18.12.2020Exim — это так называемый MTA ( Mail Transfer Agent ), агент передачи сообщений, в просторечии - почтовик или почтовый сервер, использующийся в операционных системах Unix. Распространяется по свободной лицензии GPL, то есть доступен для распространения, использования и модификации. Exim, весьма распространен и в некоторых операционных системах является почтовым сервером по умолчанию.
ID сообщений и spool файлы
Идентификаторы сообщений в очередях Exim, представляют из себя буквенно-цифровые последовательности в верхнем и нижнем регистрах: XXXXXX-YYYYYY-ZZ и используются большинством команд администрирования очереди и логгирования в Exim. Для каждого сообщения создаются три файла в spool директории ( зачастую это: /var/spool ).
Если вы работает с данными файлами вручную, без использования описанных ниже команд и утилит, убедитесь что обработали все три файла, например, не оставив в очереди exim только один из них, удалив остальные. Каталог /var/spool/exim/msglog содержит файлы со служебной информацией для каждого сообщения и именуются в соответствии с ID этого сообщения.
Каталог /var/spool/exim/input содержат файлы заголовков и данных, к ID сообщения в имени, добавлены суффиксы -H и -D, соответственно. Кроме того в этих директориях могут появляться хэшированные подкаталоги для работы с большими почтовыми очередями.
Получение базовой информации по Exim
Вывести количество сообщений в очереди:
[email protected]# exim -bpc
Печать списка сообщений в очереди. Выводятся, время постановки в очередь, размер, ID сообщения, отправитель, получатель:
[email protected]# exim -bp
Печать суммарной информации. Выводимые колонки: количество, объем, старейшее, последнее, домен.
[email protected]# exim -bp | exiqsumm
Чем в данный момент занимается Exim:
[email protected]# exiwhat
Тестирование маршрута доставки до указанного адреса:
[email protected]# exim -bt [email protected] [email protected] <-- [email protected] router = localuser, transport = local_delivery [email protected]# exim -bt [email protected] [email protected] router = localuser, transport = local_delivery [email protected]# exim -bt [email protected] router = lookuphost, transport = remote_smtp host mail.remotehost.com [1.2.3.4] MX=0
Эмитировать SMTP транзакцию из командной строки, как если-бы сообщение пришло с указанного IP адреса. При этом будет показано прохождение и срабатывание проверок, фильтров и листов доступа (ACL). На самом деле, никакое сообщение никуда доставлено не будет.
[email protected]# exim -bh 192.168.11.33
Листинг всех настроек конфигурации exim:
[email protected]# exim -bP
Поиск очереди с помощью утилиты exiqgrep
Стандартная поставка сервера Exim включает в себя утилиту для поиска по очередям — exiqgrep, это самый оптимальный путь для решения данной задачи. Если вы используете конвейер команд, например из exim -bp в awk, grep, cut и т.д., вы просто усложняете себе жизнь. Различные ключи команды exiqgrep, позволяют достаточно тонко настроить критерии поиска. Ключ -f используется для поиска сообщений конкретного отправителя
[email protected]# exiqgrep -f [luser]@domain
Ключ -r используется для поиска сообщений для определенного адресата
[email protected]# exiqgrep -r [luser]@domain
Ключ -o указывает искать сообщения, старее, указанного количества секунд. В примере, сообщения старее 1 дня:
[email protected]# exiqgrep -o 86400 [...]
Ключ -y ищет сообщения свежее указанного количества секунд. В примере, найти сообщения, пришедшие в течении последнего часа:
[email protected]# exiqgrep -y 3600 [...]
Ключ -s позволяет искать по размеру сообщения, совпадающего с заданным регулярным выражением:
[email protected]# exiqgrep -s '^7..$' [...]
Для поиска только среди заблокированных( замороженных ) сообщений, используйте ключ -z, или -x для поиска только среди не заблокированных. Еще несколько ключей отвечающих за вывод результатов поиска Вывести только ID сообщения, в одном из вышеупомянутых вариантов поиска
[email protected]# exiqgrep -i [ -r | -f ] ...
Печатать счетчик сообщений при одном из вышеприведенных вариантов поиска:
[email protected]# exiqgrep -c ...
Вывести только идентификатор всей очереди:
[email protected]# exiqgrep -i
Управление очередями сообщений
Основной бинарник Exim ( /usr/sbin/exim ), используется с различными ключами для управления сообщениями в очереди. Многие ключи, подразумевают указание одного или более ID сообщения в командной строке, как раз тут вам и пригодится команда exiqgrep -i, которая была упомянута выше. Запуск очереди:
[email protected]# exim -q -v
Запуск очереди только для локальных доставок:
[email protected]ost# exim -ql -v
Удалить сообщение из очереди:
[email protected]# exim -Mrm [ ... ]
Очистит все заблокированные сообщения из очереди:
[email protected]# exipick -zi | xargs exim -Mrm
Очистит все сообщения из очереди:
[email protected]# exipick -i | xargs exim -Mrm
Заблокировать( заморозить ) сообщение:
[email protected]# exim -Mf [ ... ]
Разблокировать сообщение:
[email protected]# exim -Mt [ ... ]
Доставить сообщение, вне зависимости от состояния блокировки или времени повторной доставки:
[email protected]# exim -M [ ... ]
Доставить сообщение, только если достигнуто время для повторной доставки:
[email protected]# exim -Mc [ ... ]
Принудительно остановить сообщение с формулировкой "отменено администратором":
[email protected]# exim -Mg [ ... ]
Удалить все заблокированные сообщения:
[email protected]# exiqgrep -z -i | xargs exim -Mrm
Удалить все сообщения, старше 5 дней (86400 * 5 = 432000 секунд):
[email protected]# exiqgrep -o 432000 -i | xargs exim -Mrm
Заблокировать все письма от указанного отправителя:
[email protected]# exiqgrep -i -f [email protected] | xargs exim -Mf
Просмотреть заголовки сообщений:
[email protected]# exim -Mvh
Просмотреть тело сообщений:
[email protected]# exim -Mvb
Просмотр логов сообщения:
[email protected]# exim -Mvl
Добавить получателя в сообщение:
[email protected]# exim -Mar [... ]
Редактировать отправителя сообщения:
[email protected]# exim -Mes