Configuring postfix to read replica domains when mail arrives

Joonas Hämäläinen <list-joonas-AGc4YEJrb9X+upvpW/[email protected]> Mon, 30 Apr 2007 08:43:40 +0300
Newsgroups gmane.comp.isp.ispman.user
Message-ID <[email protected]>
Hips,

tried search a bit about this, but it didn't reveal anything useful.

PROBLEM:
When mail arrives to postfix, it should check if there is mailbox where =

that mail should go. If there isn't, it should give error 550, and =

otherwise accept it. This works fine for primary domains, but if mail =

arrives to replica domain, current config doesn't read mailboxes and =

mail is accepted.

Because this kind of mail is usually spam, it would be good to stop =

those mails as early as possible. If postfix has taken mail in, it also =

sends replies to sender that it can't be reached. And from there it most =

of the time bounces back... causing quite much unnecessary mail traffic.

CONFIG:

This is how our postfix has been configured to read ldap.

/etc/postfix/main.cf
--- clip ---
### maps:
relay_domains =3D ldap:ldaprelay
canonical_maps =3D ldap:ldapcanonical
virtual_alias_maps =3D ldap:ldapvirtual,regexp:/etc/postfix/regexp_aliases
virtual_alias_domains =3D ldap:ldapdomain

### relay_domains:
ldaprelay_server_host =3D localhost
ldaprelay_server_port =3D 389
ldaprelay_search_base =3D o=3Dispman
ldaprelay_bind =3D no
#ldaprelay_query_filter =3D (&(objectclass=3DispmanDomain)(ispmanDomain=3D%=
s))
ldaprelay_query_filter =3D =

(&(objectclass=3DispmanDomain)(ispmanDomainMailDeliveryMe
thod=3Dsmtp)(ispmanDomain=3D%s))
ldaprelay_result_attribute =3D ispmanDomain

### canonical_maps:
ldapcanonical_server_host =3D localhost
ldapcanonical_server_port =3D 389
ldapcanonical_search_base =3D o=3Dispman
ldapcanonical_bind =3D no
ldapcanonical_query_filter =3D
(&(objectclass=3DispmanDomain)(ispmanDomainType=3Dreplica)(mailLocalAddress=
=3D%s))
ldapcanonical_result_attribute =3D mailForwardingAddress

### virtual_alias_maps:
ldapvirtual_server_host =3D localhost
ldapvirtual_server_port =3D 389
ldapvirtual_search_base =3D o=3Dispman
ldapvirtual_bind =3D no
ldapvirtual_query_filter =3D (|(mailLocalAddress=3D%s)(mailAlias=3D%s))
ldapvirtual_result_attribute =3D mailRoutingAddress, mailForwardingAddress

### virtual_alias_domains:
ldapdomain_server_host =3D localhost
ldapdomain_server_port =3D 389
ldapdomain_search_base =3D o=3Dispman
ldapdomain_bind =3D no
ldapdomain_query_filter =3D
(&(objectclass=3DispmanDomain)(ispmanDomainMailDeliveryMethod=3Dlocal)(ispm=
anDomain=3D%s))
ldapdomain_result_attribute =3D ispmanDomain
--- clip ---

So if someone has solved already this problem, reply with corrected ldap =

query would be nice, or then someone who is more familiar with them =

could work it out :)

Thank you in advance!

Best regards,
Joonas H=E4m=E4l=E4inen

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/