Проверка работы почтового сервера Exim на примере CentOS
Я написал небольшую шпаргалку по основным командам как проверить работу почтового сервера EXIM. Как правило он не доставляет проблем и поэтому со временем забываешь как им пользоваться и попадаешь в ступор при возникновении недоразумений с доставкой почты.
Как проверить работу почтового сервера на PHP
Для проверки работы почтового сервера я использую следующий PHP скрипт:
<?php $testemaillist = array( 'mail1@domain1.tld', 'mail2@domain2.tld', 'mail3@domain3.tld', 'mail4@domain4.tld', 'mail5@domain5.tld' ); for ($i=0; $i < count($testemaillist); $i++) { if (mail("$testemaillist[$i]", "Test email for $testemaillist[$i]", "Test email for $testemaillist[$i] \n To be, or not to be, \n that is the question")) { echo "Sent - $testemaillist[$i]<br>"; } else { echo "Error - $testemaillist[$i]<br>"; } } ?>
Этот скрипт попытается отправить проверочное письмо по списку адресов из массива. Измените этот список на почтовые ящики к которым у вас есть доступ и сохраните скрипт в каком-нибудь PHP файле у себя на сайте (например testmail.php) и затем запустите в окне браузера (http://mydomain.tld/testmail.php).
При успешной работе скрипта вы увидите в окне браузера список email адресов куда сервер попытается доставить почту. Далее вам нужно будет проверить указанные в скрипте почтовые ящики, чтобы убедиться что письма пришли.
Как проверить работу почтового сервера Exim из командной строки
Если кто-то вас уверяет, что сервер ничего не отправляет, то проверьте его его работу прямо из консоли:
# echo "test" | mail -s 'test message' mail@domain.tld
где mail@domain.tld адрес электронный почты, на который вы хотите отправить проверочное сообщение.
Если при этом вы получили сообщение об ошибке:
# echo "test" | mail -s 'test message' mail@msn.com -bash: mail: command not found
То установите mailx (пример для CentOS):
# yum install mailx
Команды для работы с очередью сообщений в Exim
Проверить количество сообщений в очереди:
exim -bpc
Получить список сообщений в очереди:
exim -bp
Просмотреть тело сообщения с конкретным ID:
exim -Mvb email-id
Удалить все «замороженные» сообщения из очереди:
exipick -zi | xargs exim -Mrm
Полностью очистить очередь сообщений (удалить все неотправленные сообщения):
exipick -i | xargs exim -Mrm
Благодарности
При написании статьи были использованы следующие источники: