Es gibt so im großen und ganzen zwei verschiedene Ansätze um einen IMAP Server (z.B. Dovecot oder Cyrus) anzubinden.
Der eine Ansatz ist:
* Domain in relay_domains auflisten (Postfix "relayed" das Zeug - nämlich zum LMTP-Server von cyrus oder dovecot, oder in einen transport hinein, der seinerseits eine PIPE aufruft)
* Empfänger in relay_recipient_maps auflisten
Internet --smtp--> Postfix --lmtp--> cyrus/dovecot Internet --smtp--> Postfix --pipe--> programm
Vorteil: ========
* cyrus/dovecot kriegen Mails mit der vollen Emailadresse als Usernamen * d.h. man kann sich ohne Tricks mit seiner Emailadresse anmelden * die Mail im Transit hat auch immer dieselbe Adresse (keine Umschreibung nötig)
Nachteil: =========
* irgendwoher muss die relay_recipient_maps Info kommen, am besten aus einer gemeinschaftlich genutzten Quelle von Postfix und cyrus/dovecot (Datenbank, LDAP, sowas...)
Der andere Ansatz ist:
* Domain in virtual_alias_domains auflisted, dann wird die Emailadresse auf irgendwas "umgeschrieben" (username4711@localhost) Und username4711@localhost wird dann irgendwie local zugestellt (dovecot-deliver, cyrus-deliver, pipe, sonstwas...)
* Empfänger müssen dann in virtual_alias_maps auf die dem cyrus/dovecot bekannten Usernamen gemappt werden (damit die Mail korrekt ankommt)
Vorteil: ========
* Alle Domains sind virtuell, bis auf EINE, und die eine ist die einzige, für die man die Zustellung dann konfigurieren muss.
Nachteil: =========
* Im Transit ändert sich die Emailadresse irgendwann