Fórum Root.cz

Hlavní témata => Server => Téma založeno: PK69 22. 07. 2011, 12:08:38

Název: Postfix - sdílení virtuálních domén
Přispěvatel: PK69 22. 07. 2011, 12:08:38
Zdravím

potřeboval bych co nejjednodušeji sdílet třídění mailů pro virtuální domény a virtuální účty.
K existující doméně např. @domena1.cz potřebuji přidat @domena2.cz tak, aby již existující třídění pro @domena1.cz platilo i pro @domena2.cz

Díky za tip

Pavel
Název: Re: Postfix - sdílení virtuálních domén
Přispěvatel: Gazda 22. 07. 2011, 12:25:30
Aký backend používate na ukladanie tých virtuálnych domén, e-mailových účtov, etc? S SQL je to hračka, s LDAP to ide určite tiež.
Název: Re: Postfix - sdílení virtuálních domén
Přispěvatel: PK69 22. 07. 2011, 13:14:59
Jako backend je použit MySQL.
Dokážu použít "brutal force" řešení a napsat SQL skript, který mi vytvoří příslušné aliasy automaticky. Jenže při stovkách adres to bude hodně nepřehledné....
Jde mi spíš o to, jestli to nejde udělat nějak elegantně přes nějaký parametr Postfixu, který mi uniká.


díky Pavel
Název: Re: Postfix - sdílení virtuálních domén
Přispěvatel: Gazda 22. 07. 2011, 15:46:01
v main.cf sa pozrite na virtual_mailbox_maps. Má vracať cestu k mailboxu. Potrebujete tam priradiť niečo takéto:
Kód: [Vybrat]
virtual_mailbox_maps = mysql:/etc/postfix/virtual_mailbox_maps
Do súboru /etc/postfix/virtual_mailbox_maps potom môžete zapísať (okrem iného) niečo ako:
Kód: [Vybrat]
query = select 'default-domain.com/'|| lower('%u') ||'/' from mailboxes where alias = lower('%u')
Tým prakticky ignorujete doménu adresáta správy a všetky správy doručujete ako keby boli adresované do default-domain.com
Název: Re: Postfix - sdílení virtuálních domén
Přispěvatel: PK69 22. 07. 2011, 16:06:36
Díky,
nad něčím podobným jsem uvažoval taky, trochu mi vadí nazev domény "natvrdo zadrátovaný" v SQL dotazu, asi bych to řešil nějakou další tabulkou...

Taky jsem chtěl řešení předřadit co nejvýš.

Další domény by mělo jít přidávat a odebírat s co nejmenším úsilím, škoda že neexistuje něco co by například přepsalo název domény v obálce mailu poté co přijde do fronty...

Pavel
Název: Re: Postfix - sdílení virtuálních domén
Přispěvatel: Gazda 22. 07. 2011, 16:21:28
trochu mi vadí nazev domény "natvrdo zadrátovaný" v SQL dotazu, asi bych to řešil nějakou další tabulkou...
Ja som z podobného dôvodu delivery logic zapúzdril do PL/pgSQL-funkcie, ktorá vracia tabuľku. (S funkciou vracajúcou text sa nedá rozumne pokryť situácia, keď ide o neexistujúci alias. Postfix nevyhodnocuje NULL tak, ako by sa dalo očakávať.) Inou možnosťou je nejaký subselect. Posúďte sami, čo z toho mySQL podporuje.
Název: Re: Postfix - sdílení virtuálních domén - ŘEŠENÍ
Přispěvatel: PK69 23. 07. 2011, 15:23:57
Takže nakonec jsem to vyřešil úpravou sql dotazu, řešení funguje pro všechny domény na serveru.

Jestli to někomu pomůže tak příslušný dotaz v MySQL vypadá takto:
Kód: [Vybrat]
query = SELECT goto FROM pa_aliases WHERE LEFT(address,INSTR(address, '@')-1) = '%u'
V poli address je uložena celá adresa ve tvaru jmeno@domena.cz, ze které příkazem  LEFT(address,INSTR(address, '@')-1) dostanu jmeno.
Za parametr %u dosadi Postfix mistní část emailové adresy, takže prakticky se hledá jen podle lokální části adresy, bez ohledu na domenu.

Pavel
Název: Re: Postfix - sdílení virtuálních domén - ŘEŠENÍ
Přispěvatel: PK69 23. 07. 2011, 21:14:05
POZOR!

Chybička se vloudila, při kopírování kódu jsem nevybral všechno....

Poslední podmínka omezuje hledání jen na přijímané domény.
Jinak by to nefungovalo při náhodné shodě místních a cizích jmen, např. novak@cizi_domena.cz by byl dorucen do novak@moje_domena.cz atd.
%d nahradí Postfix za doménu z emailové adresy.

Takže správně to celé vypadá takto:
Kód: [Vybrat]
query = SELECT goto
  FROM pa_aliases
  WHERE
         active = '1'
  AND LEFT(address,INSTR(address, '@')-1) = '%u'
  AND '%d' IN (SELECT domain FROM pa_domains WHERE active = '1')

Jako základ jsem použil GroupOffice, proto tam mám ještě podmínku na aktivní schránky a domény. GO má pro Ubuntu/Debian krásnou instalační variantu vše v jednom (instalace i konfigurace) vřele doporučuju. Instalace a konfigurace celého Postfixu včetně backendu je hotová za pár minut...

Pavel