Sendmail a přepisování emailové adresy odesilatele pro emaily opouštějící lokální poštovní systém

Následující text popisuje způsob, jak donutit sendmail přepisovat emailovou adresu odesilatele (například root@debian) za jinou (například noreply@n1.4smart.cz). Toto přepisování se vztahuje pouze na emaily, které opouštějí sendmail a putují k dalším poštovním serverům na internetu. Jinak řečeno - uvedené nastavení nebude mít vliv v případě doručení do lokální schránky.

  • Pozn.1: Postup vychází z prakticky ověřených úprav sendmailu na HW strojích 4smart.cz.
  • Pozn.2: Ve vašem případě použijete vždy místo n1.4smart.cz vlastní registrovanou doménu.

/etc/hosts

Tento soubor obsahuje statickou tabulku, která přiřazuje IP adresu k doménovému jménu. Aby sendmail fungoval korektně, je třeba zde uvést odpovídající vztah mezi síťovým rozhraním do internetu (veřejná IPv4 adresa VPS) a registrovanou doménou

127.0.0.1  localhost
77.93.202.6  n1.4smart.cz
...

/etc/mail/local-host-names

Přidáme registrovanou doménu (v mém případě n1.4smart.cz). Veškerý obsah mého souboru pak je tento:

localhost
debian
n1.4smart.cz

/etc/mail/sendmail.mc

Na konec souboru přidáme následující řádky:

dnl # Masquerading options
dnl # Vsechny emaily budou obsahovat i domenovou cast:
FEATURE(`always_add_domain')dnl
dnl # Odeslany email se bude jevit jako odeslany z teto domeny:
MASQUERADE_AS(`debian')dnl
dnl # Maskaradovat budeme vse:
FEATURE(`allmasquerade')dnl
dnl # Bude provadena i maskarada adres v obalce, jinak by byly maskaradovany pouze adresy v zahlavi
FEATURE(`masquerade_envelope')dnl 
dnl # Pravidla maskaradovani:
FEATURE(`genericstable', `hash -o /etc/mail/genericstable.db')dnl
dnl # Domenova cast emailu odesilatele podle zadani GENERICS_DOMAIN nebo GENERICS_DOMAIN_FILE:
FEATURE(generics_entire_domain)dnl
dnl # Domena odesilatele:
GENERICS_DOMAIN(`n1.4smart.cz')dnl

/etc/mail/genericstable

Obsahuje pravidla maškarády, tedy převod nekvalifikovaného (lokálního) zadání na plně kvalifikované zadání:

root  noreply@n1.4smart.cz

Vytvoření genericstable.db ze souboru genericstable

Vytvořený soubor genericstable je třeba transformovat na stejnojmenný soubor s příponou .db:

makemap -r hash /etc/mail/genericstable.db < /etc/mail/genericstable

Restart sendmailu

/etc/init.d/sendmail restart

Jak vyzkoušet

Nejjednodušeji v bashi pomocí příkazu mail - zasláním testovacího emailu na nějaký svůj účet:

mail mujemail@seznam.cz

Poznámky pod čarou

  • Význam magického řetězce dnl je „Do Not Load“ a slouží jen k uvození komentářů. Zpracován je až nový řádek.
  • V souboru /etc/mail/sendmail.mc pozor v syntaxi na dvojí uvozovky ` a ' !
  • FEATURE(generics_entire_domain)dnl jako jediné v souboru /etc/mail/sendmail.mc neobsahuje uvozovky !
  • Konfigurace sendmailu pro mě není úplně stravitelná. Zasluhovala by hlubší studium. Případné komentáře a doplnění k tomuto článku rád uvítám na fóru nebo na email podpora[zavinac]4smart.cz.

Užitečné odkazy

 
sendmail_a_prepisovani_emailove_adresy_odesilatele.txt · Poslední úprava: 2011/08/09 14:50 autor: root