Моя машина (CentOS, sendmail-8.14.7-5.el7) принимает электронные письма с машин и пересылает их все на мой smarthost my-smarthost.mydomain.com
, который в свою очередь имеет несколько динамических MX-записей. Локальная почта остается локальной (используя файл псевдонима).
sendmail.mc:
define(`SMART_HOST', `smtp:my-smarthost.mydomain.com')dnl
Сегодня я заметил проблему:
# mailq
/var/spool/mqueue (1 request)
-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient-----------
02AG1YBC023172 1239 Tue Mar 10 17:01 <[email protected]>
8BITMIME (host map: lookup (non-domain.com): deferred)
<[email protected]>
# sendmail -v -q
Running /var/spool/mqueue/02AG1YBC023172 (sequence 1 of 1)
non-domain.com: Name server timeout
<[email protected]>... Transient parse error -- message queued for future delivery
Почему sendmail пытается искать адреса в письмах в DNS? Я думал, что он просто пересылает все нелокальное на смартхост!
Я попытался использовать трюк, чтобы отключить DNS-поиск с помощью
define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl
и так далее, но есть проблема: это также отключает MX-поиск для смартхоста! Так что динамические MX-записи для моего смартхоста больше не находятся/не используются!
Есть идеи, как запретить sendmail делать что-либо, кроме ретрансляции на смартхост?
решение1
Рассмотрите возможность использованияFEATURE(nocanonify)
неканонизироватьНе передавайте адреса в $[ ... $] для канонизации по умолчанию, т. е. имена хостов/доменов считаются каноническими, за исключением неквалифицированных имен, которые не должны использоваться в этом режиме (нарушение стандарта). […]
Это должно помешать sendmail запрашивать DNS о доменах в адресах заголовков.