Newsgroup: it.comp.os.linux.sys
Titolo: Re: Postfix ed il routing delle mail con LDAP


E' bruttarello, ma l'unica che mi viene in mente (a parte spaccarsi la
testa a configurare postfix in modo che faccia il routing come deve) è
abusare degli alias... ovvero, costruire su LDAP una mappa di alias in
cui hai la corrispondenza
mailacceptaddress (indirizzo di mail pubblico) => maildrop (nella
forma user...@host.di.inoltro). (oh, riverifica i nomi dei campi che
vado a memoria).
Una chiavica da mantenere, ma dovrebbe funzionare.
bye!


Posto che di LDAP non so una ceppa e quindi potrei aver capito il
problema in modo completamente diverso da come esso è realmente, le
transport_maps valgono anche per-utente, eh...

 Potresti essere piu' specifico?
man 5 transport:
[...]
user@domain transport:nexthop
    Deliver mail for user@domain through transport to nexthop.
Esempio....
In 
main.cf
:
transport_maps                  = hash:$config_directory/transport
In /etc/transport:
pi...@bofhland.org
	smtp:[192.168.1.1]
pl...@bofhland.org
	smtp:[192.168.1.2]
questo fa sě che le mail dirette a pippo vengano inoltrate a
192.168.1.1, quelle dirette a pluto a 192.168.1.2.
Via SMTP, senza alcuna variazione di envelope-recipient, ecc.
Non usando LDAP, non saprei la scrittura per far quello che intendi tu
basandosi sul risultato delle query ad LDAP, ma con utenti su SQL non č
un problema farlo, ergo immagino che valga altrettanto per LDAP...

 hemmm... io vorrei evitare di dover configurare 3000 utenti a manella...
Ouh, capiamoci: era un esempio.... :-P
Se avessi utenti su SQL scriveresti nient'altro che la query necessaria
ad ottenere la right-part avendo come where la left-part...
Con LDAP, appunto, mai interessato.

 hemmm... io vorrei evitare di dover configurare 3000 utenti a manella...
qual e' il criterio?
perche' esiste sempre la forma @
bofhland.org

 fermo...
Boh, provando a dare una veloce guglata al riguardo trovo un esempio
fatto cosě.
In 
main.cf
:
transport_maps = ldap:/etc/postfix/ldapUserTransport.cf
In /etc/postfix/ldapUserTransport.cf:
server_host = 1.2.3.4
server_port = 389
search_base = o=XXX
bind_dn = cn=blah
bind_pw = xxxxxxxx
version = 3
query_filter=(&(|(mail=%s)(mailAlternateAddress=%s))(mailUserStatus=active))
result_attribute = mailhost
bind = yes
result_filter = smtp:%s
expansion_limit = 1
Che per me pare avere un senso, ma non so se sia adatto allo schema di
cui parlavi prima...
HTH

 Idee (a parte 'butta via quella chiavica di postfix' ovviamente)?
zimbra usa(va?) transport con ldap, dacci un'occhiata

 HTH
Secondo me è proprio giusto, perchè poi il mailroutingaddress lo prende con
un alias_maps e il gioco è fatto.
-- 
Vide

 fermo...
Spiacente, non conosco abbastanza il client LDAP di postfix. 
Una soluzione potrebbe essere quella di sincronizzare i dati 
che ti servono su un db mysql da interrogare con postfix.
Fabio

 
e se invece mettessi un dns fittizio con mailhost diverso?

 ci provo domani...
Non so, mi parrebbe strano: a meno che nella configurazione non sia
stato cambiato qualcosa esplicitamente, la transport di default è
comunque via smtp, quindi non dovrebbe cambiare granchè.
Considera che la scrittura "smtp:hostname" punta alla risoluzione MX di
"hostname" e non ad hostname in quanto record A.
Per forzare l'instradamento verso quest'ultimo, è necessario specificare
hostname tra [].
Magari nel tuo caso non cambia nulla (se il record A esiste e non vi è
alcun MX che lo riguarda, viene usato comunque il record A), e comunque
è comportamento comune a molti altri SMTP, ma intanto lo fo presente...