Nasel jsem na netu navod ktery resi stejnou vec jako ja:
Postup, jak nastavit, aby sendmail na lokálním linuxovém stroji doručoval maily pro určitou doménu jinam, než říká MX záznam. Potřeboval jsem to nastavit na své stanici, protože admini překonfigurovali NAT, na jehož veřejnou IP se současně resolvuje MX záznam pro naši doménu, ale na vnitřním rozhraní už nyní port pro SMTP nefunguje, k tomu slouží jiný stroj ve vnitřní síti.
V GNU/Linuxu probíhá odesílání mailů standardně tak, že se maily předávají lokálnímu sendmailu nebo jinému MTA, který je sám doručuje na cílové SMTP servery podle MX záznamů v DNS, lokálně doručované maily předává lokálnímu MDA (typicky procmail).
V perexu zmíněný problém se dá vyřešit změnou DNS, ten však také nemám pod svou kontrolou a na stanici kvůli tomu vlastní nameserver s jinak definovanou zónou pro naši doménu provozovat nechci. Nastavit v /etc/hosts, že mail.domena.cz má určitou vnitřní IP, nepomohlo, sendmail asi tento mechanismus obchází a používá výhradně DNS.
Jako lepší řešení se mi jeví nakonfigurování sendmailu tak, aby pro určitou doménu doručoval na konkrétní explicitně udaný stroj, a toto řešení zafungovalo. Zde je stručný popis:
1. V /etc/mail/sendmail.mc musí být povoleno používání mailertable; pokud není, zapsat
FEATURE(`mailertable')
a přetransformovat změněnou konfiguraci sendmailu do /etc/sendmail.cf pomocí příkazu
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
Konfigurační soubor sendmail.cf nyní obsahuje následující nebo podobný řádek, který definuje umístění mailertable:
Kmailertable hash /etc/mail/mailertable
2. Do souboru /etc/mail/mailertable (pravděpodobně bude prázdný, pokud se nastavuje poprvé) zapsat řádek tvaru
domena.cz smtp:[server.pro.tuto.domenu]
(adresa serveru může být v doménové nebo číselné podobě). Poté změněnou konfiguraci přetransformovat do souboru mailertable.db čitelného sendmailem pomocí příkazu
/usr/sbin/makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
3. Nyní stačí restartovat sendmail a vyzkoušet. Maily pro domena.cz by nyní měly být doručovány přes server.pro.tuto.domenu a ne např. přes smtp.domena.cz, který může figurovat v MX záznamu.
Blbe ale je, ze mi to hned v druhem kroku prvniho bodu hodi chybu:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
m4:/etc/mail/sendmail.mc:75: cannot open `/usr/share/sendmail/cf/feature/'mailertable'.m4': No such file or directory
a to tam ten mailertable.m4 na tom umisteni je.