[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dovecot virtual users / exim4



On Thu, Nov 22, 2012 at 07:37:38PM +0100, mourik jan heupink wrote:
> Hoi Hans, lijst,
> 
> > Het begin is er... :-)
> > 
> > https://github.com/knorrie/lmao
> 
> Inmiddels ben ik een heel eind verder. Postfix lijkt ook een stuk beter
> aan te sluiten bij mijn brein dan exmin dat deed. Dank voor die tip. :-)

Hmm. Dat spijt me te horen.

(exim fan, effe langer niet op deze lijst geweest)

Ik heb indertijd even met Postfix gewerkt omdat een klant expliciet om
postfix vroeg, en ik ben toen tot de conclusie gekomen dat het grote
verschil tussen postfix en exim mbt lookups het volgende is:

- Bij postfix gebeuren lookups via "maps". Het is mogelijk om maps
  overal in te steken (bv in LDAP, in SQL databases, enzovoort), maar
  dat moet dan gewoonlijk via schema's die door de ontwikkelaar van de
  desbetreffende "map" gekozen zijn.
- Bij exim gebeuren lookups via string expansion in de main config file.
  Dat geeft je meer flexibiliteit voor het kiezen van het schema, maar
  je moet wel meer zelf doen.

Om een LDAP lookup te doen voor een mailadres, doe je onder Exim
bijvoorbeeld het volgende:

${lookup ldap{ldap:///dc=grep,dc=be?uid?(mail=$local_part@$domain)}}

Dat doet een lookup naar gebrukers met het gezochte emailadres in hun
'mail' attribute, en retourneert het uid. Vermits het een 'ldap' lookup
is, en geen 'ldapm', mag deze lookup maar één uid retourneren.

Je kan dat bijvoorbeeld gebruiken in een router van de volgende soort:

redirect_ldap:
  driver = redirect
  data = ${lookup ldap...

die je ergens in je lijst met routers zet. Dat zal dan emailadressen
omzetten naar lokale gebruikersnamen.

Wil je ook nog mailinglijsten ondersteunen, dan zet je er nog een tweede
router bij voor mailinglijsten:

lists_ldap:
  driver = redirect
  data = ${lookup ldapm{ldap:///dc=grep,dc=be?memberUid?(mail=$local_part@$domain)}}

Dit zoekt naar LDAP entries met ook weer het mailadres van de gebruikte
lijst in het 'mail' attribute, en retourneert een lijst van alle
gebruikers die via memberUid in die lijst zitten.

Je kan eventueel ook een LDAP-lookup doen die alle gebruikers in één
attribuut heeft zitten als comma-separated values; vermits exim met
string expansion werkt, en het een comma-separated value wilt, is dat
perfect in orde.

> Ik heb veel hulp van je voorbeelden (en ook die van anderen, trouwens),
> maar er zijn een paar dingen waar ik toch mn vinger niet goed achter
> krijg, en wil nu graag een vraag stellen:
> 
> Ik wil onze bestaande ldap structuur gebruiken. We hebben daarin
> posixGroups waar ik dan een mail attribuut aan toevoeg. Dat werkt prima,
> gecheckt met postmap -q enzo.
> 
> Echter: onze memberUids zijn usernames ipv emailadressen. Dit moet
> uiteraard ook zo blijven. (de ldap is ook onze linux/samba userdatabase,
> dus kan dat niet wijzigen)
> 
> De vraag: Is er een manier om postfix te vertellen dat hij aan het
> resultaat van die ldap group expansion nog '@example.com' moet
> toevoegen, zodat de uid een mailadres wordt?
> 
> Of zijn er andere manieren om dit te realiseren?

Met exim ;-P

-- 
Copyshops should do vouchers. So that next time some bureaucracy requires you
to mail a form in triplicate, you can mail it just once, add a voucher, and
save on postage.


Reply to: