[FreeBSD] postfix virtual maps
BURJAN Gabor
burjang at elte.hu
2002. Jan. 18., P, 15:20:11 CET
Szia,
On Fri, Jan 18, Potoczky Andras wrote:
> adott:
> mail.domain1.hu
> mail.domain2.hu
>
> A postfix jelenleg (eddig amit tudtam vele muvelni) ugy mukodik,
> hogy ha irok levelet:
> sajatmagam at domain1.hu cimre, akkor sajatmagam user megkapja a levelet.
> Ez eddig ok. Ha irok meg egyet: sajatmagam at domain2.hu cimre, akkor
> azt is sajatmagam user kapja meg.
Nyilván mert mindkettő benne van a mydestination-ben.
> Hogyan lehetne azt megoldani, hogy a domain2 cimre erkezett userek
> mas postafiokokba menjenek? (Nem hatrany, ha meg kulon unix real
> user sincs mogotte, csak a postafiok). Mi az, amivel a postfixnek
> egyutt kellene a teljes feladatban mukodnie? Ez alatt arra
> gondolok, hogy ha szukseg van meg valamire, az mi?
A postfix a levelek fogadását, queue-olását, küldését, és opcionálisan
(ha nincs más MDA, LMTP, vagy hasonló varázslás), akkor mailboxba
pakolását végzi.
Ami neked kell, az virtual maps (virtual(5) és VIRTUAL_README a
doksiban) és attól függően, hogy kicsiben vagy nagyban játszol,
mailboxokba/maildirbe lepakolni vagy egy (több) combos IMAP szervert
mögérakni.
Mivel sem a POP sem az IMAP protokollszinten nem rejt magában olyan
lehetőségeket, amivel name-based virtual hostingot tudnál csinálni,
ezért ha nincs sok IP-d, akkor érdemes leképezni a user at domain1 alakú
címeket mondjuk domain1-user vagy hasonló alakúra. (Egyesek szeretik
magát a teljes e-mail címet használni POP/IMAP username-ként, a `@'
illetve a `.' karakterek sajátosságai miatt ez szerintem nem szerencsés,
ha később pl. Cyrus IMAP-ra migrálsz, akkor nagyot szívsz vele, ott
ugyanis ez folder-subfolder szeparálást végez, és mint ilyet az IMAP
szerver magában slashre fordítja. Akkor aztán írhatsz mindenféle
wrappereket, hogy a user számára transzparensen működjön továbbra is a
dolog.
Ha egyszerű megoldást akarsz, akkor csinálj ilyesmit:
main.cf-be:
config_directory = /ahol/nalad/van
mydestination = $myhostname # a virtual domainek *NEM* kellenek
virtual_maps =
dbm:$config_directory/tables/virtual/domain1
dbm:$config_directory/tables/virtual/domain2
alias_database =
dbm:$config_directory/tables/aliases.main
dbm:$config_directory/tables/aliases.virtual
alias_maps = $alias_database
virtual.*:
domain1:
domain1 rtfm
user1 at domain1 domain1-user1
user2 at domain1 domain1-user2
...
aliases.virtual
# local delivery, ld. local(8), aliases(5)
domain1-user1 /var/mail/virtual/domain1/user1/
domain1-user2 /var/mail/virtual/domain1/user2/
...
Vagy ugyanez pcre táblával még szebb. Ezek után a kedvenc POP/IMAP
daemonodat beidomíthatod, hogy ebből a struktúrából szedje a leveleit.
Ha lusta vagy, akkor hozz létre invalid shell-el usereket, a virtual
táblából közvetlenül rájuk mutass, ekkor a leveleket kiszolgáló
szervernél csak annyit kell állítanod, hogy shell check nélkül
beengedjen.
LDAP + Postfix + Cyrus IMAP vagy Courier is szép megoldás, ezzel
számtalan előnyhöz jutsz: skálázhatóság, hozzáférés-korlátozás (shared
folderek, ACL-ek), Sieve levél-válogató nyelv...
buga
További információk a(z) BSD levelezőlistáról