При установленому exim есть возможность работать с письмами через командную строку. Разберём несколько команд, которые понадобятся при работе:
Вывести сообщения в очереди:
exim -bpr
Аналогичная команда:
mailq
Просмотр количества сообщений, которые находятся в очереди:
exim -bpc
Принудительно запустить отправку сообщений из очереди:
exim -q -v
Если нужно очистить очередь, выполняем команду:
exipick -i | xargs exim -Mrm
Если нужно удалить письма, которые помечены как «frozen», выполняем следующую команду:
exipick -zi | xargs exim -Mrm
Посмотреть количество писем, которые помечены как «frozen»:
exim -bpr | grep frozen | wc –l
Если нужно удалить все сообщения конкретного отправителя, выполняем:
exiqgrep -i -f user@host.tld | xargs exim -Mrm
Где, user@host.tld — почтовый аккаунт нужного отправителя.
Так же, можем выполнять действия с сообщениями.
Вывести тело сообщения:
exim -Mvb ID_MESSAGE
Вывести заголовки конкретного сообщения:
exim -Mvb ID_MESSAGE
Удалить конкретное сообщение:
exim -Mrm ID_MESSAGE
Просмотреть активных отправителей:
exim -bp | awk '{print $4}' | sort | uniq -c | sort -rn
Логи exim хранятся по пути /var/log/exim/mail.log или /usr/log/exim_mainlog
Таким образом, можно посмотреть причины медленной доставки писем или создание очереди или от куда отправляются письма.
Посмотреть, спамят ли с директории /home/admin/public_html:
tail -f /var/log/exim_mainlog | grep /home/admin/public_html
Найти сообщения, которые отправлены с конкретного IP адреса:
exigrep '<= .* \[123.123.123.123\] ' /var/log/exim_mainlog
Где, 123.123.123.123 — нужный IP адрес.
Найти причину отклонения отправки сообщения для конкретного почтового ящика:
grep user@host.tld /var/log/exim_mainlog