Команды для управления Exim: полный справочник для администраторов Unix-систем

Exim (от англ. EXperimental Internet Mailer) — это сервис, почтовый агент пересылки сообщений, используемый в операционных системах семейства Unix. Очень часто exim сервис применяется на выделенных серверах, VPS и хостинге. Для того, чтобы управлять exim сервисом по ssh мы собрали необходимый набор команд.

Получение базовой информации по Exim

Проверить правильность синтаксиса конфигурационного файла и узнать с поддержкой каких опций собран exim:

# exim –bV

Вывести количество сообщений в очереди:

# exim –bpc

Печать списка сообщений в очереди. Выводятся, время постановки в очередь, размер, ID сообщения, отправитель, получатель:

# exim –bp

Просмотр активных отправителей

# exim -bp | awk '{print $4}' | sort | uniq -c | sort -rn

Вывод суммарной информации.

Выводимые колонки: количество писем, объем, самое старое время, самое новое время, домен.

# exim -bp | exiqsumm

Тестирование маршрута доставки до указанного адреса:

# exim -bt user@mail.ru

user@mail.ru router = lookuphost, transport = remote_smtp host mxs.mail.ru [94.100.176.20] MX=10

Имитировать SMTP транзакцию из командной строки, как если-бы сообщение пришло с указанного IP адреса. При этом будет показано прохождение и срабатывание проверок, фильтров и листов доступа (ACL). На самом деле, никакое сообщение никуда доставлено не будет.

# exim -bh 94.100.176.20

Листинг всех настроек конфигурации

# exim -bP

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

Просмотр сообщений конкретного отправителя

# exiqgrep -f name@domain.com

Просмотр сообщений для конкретного получателя

# exiqgrep -r name2@domain2.com

Поиск сообщений, старше, указанного времени ( количества секунд)

В примере, сообщения старше 1 дня:

# exiqgrep -o 86400

Поиск сообщений свежее указанного времени(количества секунд). В примере поиск сообщений, пришедших в течение последнего часа:

# exiqgrep -y 3600

Просмотр замороженных сообщений

# exiqgrep -z

Подсчет замороженных сообщеий

# exiqgrep -zc

Просмотр заблокированных сообщений

# exiqgrep -x

Подсчет заблокированных сообщеий

# exiqgrep -xc

Просмотр только идентификаторов всех сообщений

# exiqgrep -i

Управление очередью сообщений

Принудительная рассылка всей почты в очереди

Запуск очереди

# exim -q -v

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

# exim -ql -v

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

# exim –Mrm <ID-сообщения>

Удалить все заблокированные сообщения из очереди:

# exipick -zi | xargs exim -Mrm

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

# exipick -i | xargs exim -Mrm Или

# exim -bpr | awk {'print $3'} | xargs exim -Mrm

Удалить все заблокированные сообщения:

# exiqgrep -z -i | xargs exim –Mrm

Или

# exim -bpr | grep frozen | awk {'print $3'} | xargs exim -Mrm

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

# exiqgrep -o 432000 -i | xargs exim -Mrm

Заблокировать(заморозить) все письма от указанного отправителя:

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

Удалить все письма от указанного отправителя:

# exiqgrep -i -f user@example.tld | xargs exim -Mrm

Заблокировать( заморозить ) сообщение:

# exim -Mf <ID-сообщения>

Разблокировать сообщение:

# exim -Mt <ID-сообщения>

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

# exim –M <ID-сообщения>

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

# exim -Mc <ID-сообщения>

Принудительно остановить сообщение с формулировкой «отменено администратором»:

# exim –Mg <ID-сообщения>

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

# exim -Mvh <ID-сообщения>

Просмотр тела сообщений:

# exim -Mvb <ID-сообщения>

Просмотр логов сообщения:

# exim -Mvl <ID-сообщения>

Добавить получателя в сообщение:

# exim -Mar <ID-сообщения> <address> <address>

Изменить адрес отправителя сообщения:

# exim -Mes <ID-сообщения> <address>

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

# exigrep '<= .* [12.34.56.78] ' /path/to/exim_log

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

# exigrep '=> .* [12.34.56.78]' /path/to/exim_log

Данный пример ищет сообщения содержащие символы «=>», и отправленные на адрес «user@domain.tld», далее по конвейеру, результат передается команде grep, которая из полученного результата выбирает строки, содержащие «<=» с информацией об отправителе, почтовом адресе, IP адресе, размере сообщения, ID сообщения и заголовок subject, если логгирование этой строки включено.

# exigrep '=> .*user@domain.tld' /path/to/exim_log | fgrep '<='

Генерировать из лог файла и показать статистику Exim:

# eximstats /path/to/exim_mainlog

То-же что и выше но с более подробными данными:

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

Аналогично но за определенный день:

# fgrep YYYY-MM-DD /path/to/exim_mainlog | eximstats

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

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

Командой выше, мы проверяем содержимое каталога /var/spool/exim/input/, в поисках файлов очереди, содержащих определенную строку в теле сообщения, поскольку команда exiqgrep не умеет просматривать тело сообщений. Если вы решите удалить найденные файлы напрямую, ЭТО БУДЕТ НЕ ПРАВИЛЬНО, используйте предназначенные для этого команды exim.

После того как вы внесли изменения в файл конфигурации, необходимо перезапустить exim, или послать рабочему процессу сигнал SIGHUP, чтобы он перечитал конфигурационный файл и изменения вступили в силу.

Предпочтительней естественно отправить сигнал, нежели перезапускать приложение.

kill -HUP cat /var/spool/exim/exim-daemon.pid

Проверка распознавания адреса exim, и вывода роутера и транспорта который будет использоваться для доставки локальным пользователям:

# exim -bt postmaster@hostname.domain.com

Проверка распознавания адреса exim, и вывода роутера и транспорта который будет использоваться для доставки внешним пользователям:

# exim -bt user@mail.ru

Тестирование доставки сообщений внешним пользователям:

# exim -v user@mail.ru

Далее вводим руками заголовок письма:

From: root@hostname.domain.com To: user@mail.ru Subject: test letter test ^D ^C

Тестирование доставки сообщений локальным пользователям:

# exim -v postmaster

Далее вводим руками заголовок письма:

From: root@ hostname.domain.com To: postmaster@ hostname.domain.com Subject: test letter test ^D ^C

Для сообщений, которые подозреваются в спаме удобно сначала массово,сделать -Mf, потом -Mvl, -Mvh и -Mvb для пары выбранных наугад сообщений. Если все еще невозможно с консоли определить спам ли это(например, проблемы с кодировками или есть вложения), то можно с помощью -Mar добавить себя в список получателей, и ускорить данное сообщение спомощью -M. Когда все наконец станет ясно, то либо -Mrm, либо -Mt

 

Примеры в удалении спамерской почты из очереди

Просмотр кол-ва сообщений в очереди

# exim –bp

Просмотр активных отправителей

# exim -bp | awk '{print $4}' | sort | uniq -c | sort -rn

126 <> 394 name@domain.com ……………………

Подсчет кол-ва сообщений в очереди от конкретного отправителя

# exiqgrep -i -f name@domain.com | wc -l

396 Просмотр ID-сообщений от конкретного отправителя

# exiqgrep -i -f name@domain.com | less

Как правило, при просмотре тела письма мы видим, что это спам

# exim –Mvb 1VJPb5-0000Mu-5y

# exim –Mvb 1VJPbG-0000OP-IB

# exim –Mvb 1VJZ8s-0003QA-J4

Также можно просмотреть заголовок сообщения

# exim –Mvh 1VJPb5-0000Mu-5y

Логи сообщения

# exim –Mvl 1VJPb5-0000Mu-5y

Поэтому нам необходимо

Удалить все письма от указанного отправителя:

# exiqgrep -i -f name@domain.com | xargs exim -Mrm

Просмотр доменов и кол-ва писем посланных на этот домен, но отклоненных получателем

# tail -3000 /var/log/exim_mainlog |grep 'rejected RCPT' |awk {print$4}|awk -F[ '{print $2} '|awk -F] '{print $1} '|sort | uniq -c | sort -k 1 -nr | head -n 5

Проверка спамят ли из /tmp или /home

# tail -f /var/log/exim_mainlog | grep tmp

# tail -f /var/log/exim_mainlog | grep home

Удаление писем ОТ или ДЛЯ <>

# exim -bpr | grep "<>" | awk '{print $3}' | xargs exim -Mrm

Удаление писем ОТ или ДЛЯ <domain.com>

# exim -bpr |grep "domain.com" | awk {'print $3'} | xargs exim -Mrm

Просмотр количества писем ОТ или ДЛЯ в очереди

# exim -bpr | grep "<*@*>" | awk '{print $4}'|grep -v "<>" | sort | uniq -c | sort –n

Просмотр IP-адресов,которые подключены на 25 порт

# netstat -plan|grep :25|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort

Просмотр кол-ва писем и доменов ,на которые отправляются эти письма.

# exim -bp | exiqsumm | more

Просмотр кол-ва замороженных сообщений

# exim -bpr | grep frozen | wc –l

Путь к скриптам,которые отправляют почтовые сообщения

# cd /var/spool/exim/input/

# egrep "X-PHP-Script" * -R

Добавить в избранное -пригодится

9 КОММЕНТАРИИ

  1. Вопрос к автору:
    Какие еще команды можно использовать для управления и контроля exim сервисом, кроме перечисленных в статье?

  2. — Какие команды можно использовать для получения базовой информации о Exim и управления им?
    — Как проверить правильность синтаксиса конфигурационного файла Exim?
    — Как узнать, с какими опциями собран Exim?
    — Как вывести количество сообщений в очереди Exim?
    — Как можно получить список сообщений в очереди с указанием времени постановки, размера, отправителя и получателя?
    — Как можно просмотреть активных отправителей в Exim?
    — Как можно вывести суммарную информацию о сообщениях в очереди, включая количество писем, объем, самое старое и самое новое время, а также домен отправителя?
    — Как можно протестировать маршрут доставки до указанного адреса в Exim?
    — Как можно имитировать SMTP транзакцию с указанным IP адресом в Exim?

  3. 1. Какие команды используются для получения базовой информации по Exim и проверки синтаксиса конфигурационного файла?
    2. Как можно вывести количество сообщений в очереди и список этих сообщений с информацией о времени постановки в очередь, отправителе и получателе?
    3. Как можно просмотреть активных отправителей и вывести информацию о количестве писем, их объеме, времени добавления в очередь и домене отправителя?
    4. Как можно протестировать маршрут доставки до указанного адреса электронной почты?
    5. Как можно имитировать SMTP транзакцию с указанного IP адреса и просмотреть проверки и фильтрацию сообщения при этом?

  4. Сервис Exim действительно представляет собой мощный инструмент для управления почтовыми сообщениями на серверах Unix. Интересно, что вы упомянули команды для получения базовой информации о конфигурации и статусе почтовой очереди. Однако, я бы хотел уточнить несколько моментов.

    Во-первых, какие именно параметры конфигурации стоит обращать внимание при диагностике возможных проблем с передачей почты? Например, какие ошибки синтаксиса в конфигурационном файле могут наиболее сильно повлиять на работоспособность сервиса?

    Также было бы полезно получить больше информации о том, как интерпретировать вывод команды `exim -bt`. Можете ли вы привести пример конкретной ситуации, когда этот инструмент может оказаться особенно актуальным для администраторов? Например, когда стоит использовать этот тест в случае возникновения проблем с доставкой почты?

    Кроме того, я заметил, что не упомянуто о ведении логов Exim. Например, стоит упомянуть, что логи могут содержать информацию о причинах неудачи при отправке сообщений. Какую команду следует использовать для мониторинга логов, и на какие строки в логах следует обращать внимание?

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

    Все эти моменты помогут более глубоко понять работу Exim и его возможности, а также упростят процесс управления почтовыми сообщениями на серверах.

  5. В статье вы представили полезную информацию о работе с Exim, однако у меня возникли несколько вопросов и замечаний, которые могли бы дополнить ее содержание. Например, было бы полезно привести примеры ситуаций, в которых вы можете применять эти команды для решения конкретных проблем. Например, как именно команда `exim -bp` может помочь в диагностике проблем с отправкой email?

    Также, интересует вопрос о том, какие наиболее распространенные ошибки могут возникнуть при использовании команды `exim –bV` для проверки конфигурационного файла? Есть ли какие-то советы или рекомендации по корректировке конфигурации на основе вывода этой команды?

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

    Если в Alexi использовать Exim для отправки уведомлений от разных приложений, возможно, возникнет необходимость в подробном описании настройки маршрутов доставки, фильтров и различных транспортных методах, что также может быть полезно для читателей.

  6. Интересно узнать о практическом применении Exim в реальных условиях. Вы упомянули, что этот почтовый агент часто используется на выделенных серверах и VPS, но каковы основные причины выбора Exim среди других почтовых агентов, таких как Postfix или Sendmail? Например, есть ли определенные сценарии, когда Exim демонстрирует явные преимущества?

    Также меня очень заинтересовал вопрос управления Exim через SSH и основные команды, которые вы привели. Но не могли бы вы подробнее рассказать о том, как использовать эти команды в повседневной практике? Например, как может выглядеть типичный процесс отладки проблем с отправкой почты, включая команды, которые стоит использовать?

    Еще, когда вы говорите о тестировании маршрутов доставки с помощью `exim -bt user@mail.ru`, не могли бы вы привести более подробный пример? Как интерпретировать вывод такой команды, и какие действия следует предпринять, если маршрут не проходит корректно?

    Наконец, было бы полезно увидеть рекомендации по безопасности при использовании Exim. Какие основные меры предосторожности вы бы посоветовали при настройке этого почтового сервиса, особенно в контексте защиты от спама и несанкционированного доступа?

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

− 1 = 3

360 Javascript Viewer: Просмотр 360-градусных изображений на сайте — обзор и настройка

360 Javascript Viewer — это мощный инструмент для WordPress, который позволяет добавлять на сайт интерактивные 360-градусные изображения. С его помощью можно создавать эффектные визуальные...

3CX Free Live Chat, Calls & WhatsApp: Интеграция чата, звонков и WhatsApp на сайт — обзор и настройка

В современном мире онлайн-коммуникаций важно предоставлять клиентам удобные способы связи. Плагин 3CX Free Live Chat, Calls & WhatsApp позволяет интегрировать на ваш сайт сразу...

3D Viewer – WP 3D Model Viewer Plugin: Просмотр 3D-моделей на сайте — обзор и настройка

3D Viewer – WP 3D Model Viewer Plugin – это мощный инструмент для интеграции 3D-моделей на ваш сайт, созданный специально для WordPress. Этот плагин...

99minds Giftcard: Настройка подарочных карт для WooCommerce — обзор и настройка

Подарочные карты — это отличный способ привлечь новых клиентов и повысить лояльность существующих. Если вы используете WooCommerce для управления своим интернет-магазином, то плагин 99minds...

A WordPress Testimonial Plugin to Showcase Testimonial Slider, Testimonial Grid and More: Solid Testimonials: Управление отзывами и рекомендациями — обзор и настройка

Solid Testimonials — это мощный и гибкий плагин для WordPress, который позволяет легко управлять отзывами и рекомендациями на вашем сайте. С его помощью вы...

ACF: Better Search: Улучшение поиска с помощью Advanced Custom Fields — обзор и настройка

Если вы используете WordPress и Advanced Custom Fields (ACF) для создания кастомных полей, то наверняка сталкивались с проблемой поиска по этим полям. Встроенный поиск...

AI Image Generator by ChatGPT: Генерация изображений с помощью ChatGPT — обзор и настройка

AI Image Generator by ChatGPT — это инновационный плагин для WordPress, который позволяет создавать уникальные изображения с помощью искусственного интеллекта. Этот инструмент идеально подходит...

AI Proposal Builder: Создание предложений с помощью искусственного интеллекта — обзор и настройка

AI Proposal Builder — это инновационный плагин для WordPress, который позволяет автоматизировать процесс создания профессиональных предложений с помощью искусственного интеллекта. Этот инструмент идеально подходит...

AI Writer: Content Generator GPT | ChatGPT: Генерация контента с помощью GPT и ChatGPT — обзор и настройка

AI Writer: Content Generator GPT | ChatGPT — это мощный инструмент для автоматизации создания контента на основе искусственного интеллекта. Этот плагин позволяет генерировать тексты,...

ПОХОЖИЕ СТАТЬИ

Массовая очистка своих групп и видео в Контакте

Время идет и появляются задачи убрать всё что вы накидали в свои видео или запостили в своей группе. Бывает такая задача и у меня...

Обзор лучших WYSIWYG web редакторов: выбор, преимущества и недостатки

WYSIWYG web редакторы, это редакторы, которые используются для работы с контентом сайта. Как правило в каждой из cms идёт свой выбор редакторов, но на...

PWA для сайтов,что это, как использовать и как установить

Новая достаточно технология PWA расшифровывается как прогрессивное мобильное приложение и его задачей является создание мобильного приложения сайта на любых мобильных устройствах. Это естественный виток...

Сборка WordPress сайта от Ok2web — оптимизировано и настроено

Давно собирался собрать для себя сборку сайта, чтобы не тратить время на установку очень простых вещей, которые по сути обязательны для любого сайта. Сборка...

Поздравляю с новым 2018 годом. Мои пожелания!

Хочется всех поздравить с Новым годом и пожелать по настоящему приятного и нужного на весь год. Но странное дело, задумался, а что же пожелать, чтобы...

Яндекс начинает бороться с агрессивной рекламой на сайтах

Только недавно Google объявил, что будет контролировать уровень рекламной насыщенности через Chrome, а тут уже и Яндекс подхватил инициативу, также высказавшись о необходимости фильтрации...

Мои мини мемуары за 2017 год, отчёт и пожелания

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

Защита сайта от вирусов, лечение сайта от вирусов и проверка

Вообще заражение сайтов вирусами вполне возможная участь для сайта на любой системе cms и для Wordpress в том числе. Вылечить сайт от вирусов возможно...

Ошибка импорта в PHPMyAdmin: достигнут временный лимит.

Столкнулся с ошибкой временного лимита в PHPMyAdmin. пытался сделать импорт сложной таблицы в базу и не получалось из за того, что заканчивался временный лимит....

Полезные команды для проверки работы MySql

Собрал список, который занимал у меня штук 30 открытых вкладок. Когда я понял, что сил по ним бегать нет, то решил собрать такой материал,...

Настройка my.cnf для стабильной работы Mysql

Один из важных моментов в скорости работы сайта, это правильная оптимизация конфигурационного файла базы данных my.cnf, с которым многие сталкиваются в процессе оптимизации системных...

Настройка OPCache для оптимизации производительности сервера и ускорения работы PHP скриптов

Периодически я возвращаюсь к вопросу настроек работы сервера, причем это может касаться и тех у кого виртуальный сервер и тех кто использует настоящий физический...
OK2WEB
OK2WEB
Более 12 лет занимаюсь разработкой и продвижением сайтов. Городские порталы, информационные и новостные сайты. Сейчас в основном разрабатываю интернет магазины и коммерческие сайты. Если у вас есть вопросы пишите, стараюсь оперативно ответить и помочь.