MTA sendmail отправляет почту с задержкой

После переустановки софта на сервере FreeBSD, был замечен факт, что sendmail не сразу отправляет почту, а с задержкой в 5-10 секунд. Функция PHP mail(), которая отправляет письма через sendmail - то же самое: вызываемый скрипт тормозил и завершал свою работу только через 5-10 секунд. Сообщения в журнале (см. delay, xdelay):

Feb 18 00:46:16 server sendmail[34167]: gethostbyaddr(192.0.2.1) failed: 1
Feb 18 00:46:16 server sendmail[34153]: t1HLk8S5034151: to=user@example.com, ctladdr=kak (1001/0), delay=00:00:08, xdelay=00:00:08, mailer=esmtp, pri=30034, relay=mail.example.com. [192.0.2.1], dsn=2.0.0, stat=Sent (Ok: queued as 733976B2381E)

При этом локальный sendmail работает только на IP 127.0.0.1 и недоступен для внешнего мира. Оказалось, что задержку создаёт MSP (Message Submission Program) - процесс, отвечающий за обработку почтовой очереди. Задержка создавалась данным процессом на этапе проверки корректности email-адреса отправителя письма. Чтобы задержки не было, достаточно отключить эту проверку.

В make.conf указываем не создавать автоматически submit.cf.

# vi /etc/make.conf
SENDMAIL_CF_DIR=        /usr/share/sendmail/cf
SENDMAIL_SET_USER_ID=yes

Удаляем submit.cf, останавливаем sendmail, меняем для бинарника sendmail права SGID на SUID (2755→4755) и запускаем sendmail.

# cd /etc/mail
# rm submit.cf
# make stop
# chmod 4755 /usr/sbin/sendmail
# make start

Готово, отправляем тестовое письмо для проверки скорости реакции sendmail.

# echo "test" | mail -s"asdf" user@example.com
freebsd/mta_sendmail_otpravljaet_pochtu_s_zaderzhkoj.txt · Последние изменения: 2015/02/18 01:32 — vav
Наверх
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0