ČlánkyPřihlášení |
Maildrop - automatické vytváření adresářůV návaznosti na návod na mailserver s využitím virtuálních uživatelů uložených v MySQL sem přidám jen takovou malou poznámku k maildropu. Určitě jste narazili na potřebu automaticky zakládat adresář uživatele kam se budou doručovat jeho emaily. V odkazovaném návodu to řeším perlovým skriptem, který se musí spustit po založení uživatele a vygeneruje vhodnou konfiguraci pro maildrop. Toto řešení má pár vad, tou největší je nutnost spouštění skriptu aby vůbec pošta pro daného uživatele nějak fungovala. Při správě přes shellové skripty je to v pohodě, ale pokud chce člověk použít webové rozhraní, tak je spouštění suidnutého perlového skriptu docela nepříjemnou komplikací. Řešením je změnit konfiguraci maildropu. Pokud existuje konfigurační soubor pro daného uživatele, použít ho, ale když neexistuje tak vytvořit uživateli potřebný adresář pro poštu a doručit mu jí. Pro tuto změnu je nunté upravit kounfigraci postfixu, tak aby maildropu při doručování emailu přidával další potřebné parametry. V souboru
maildrop unix - n n - - pipe
flags=R user=virtual:virtual argv=/usr/bin/maildrop -d ${recipient} ${user} ${nexthop}
Dál je nutné upravit "globální" filtrovací pravidla pro maildrop v souboru
LOGNAME=tolower($LOGNAME)
UZIVATEL=tolower($1)
DOMENA=tolower($2)
`/usr/bin/test -d /home/virtual/$DOMENA/$UZIVATEL/Maildir/`
if ($RETURNCODE == 1)
{
`/bin/mkdir -p /home/virtual/$DOMENA/$UZIVATEL`
`/usr/bin/maildirmake /home/virtual/$DOMENA/$UZIVATEL/Maildir`
}
`/usr/bin/test -d /home/virtual/$DOMENA/$UZIVATEL/Maildir/.Sent/`
if ($RETURNCODE == 1)
{
`/usr/bin/maildirmake /home/virtual/$DOMENA/$UZIVATEL/Maildir/.Sent`
}
`/usr/bin/test -d /home/virtual/$DOMENA/$UZIVATEL/Maildir/.Trash/`
if ($RETURNCODE == 1)
{
`/usr/bin/maildirmake /home/virtual/$DOMENA/$UZIVATEL/Maildir/.Trash`
}
`/usr/bin/test -d /home/virtual/$DOMENA/$UZIVATEL/Maildir/.Drafts/`
if ($RETURNCODE == 1)
{
`/usr/bin/maildirmake /home/virtual/$DOMENA/$UZIVATEL/Maildir/.Drafts/cur`
}
# zkontroluji existenci uzivatelskeho filtru
`/usr/bin/test -r /home/virtual/.mailfilters/$LOGNAME`
if ( $RETURNCODE == 0 )
{
# filtr existuje, proto ho pouziju
logfile "/home/virtual/logs/$LOGNAME"
log "Including /home/virtual/.mailfilters/$LOGNAME"
include "/home/virtual/.mailfilters/$LOGNAME"
}
else
{
# filtr neexistuje, takze dorucim email primo do uzivatelovy schranky
logfile "/home/virtual/logs/$LOGNAME"
to "/home/virtual/$DOMENA/$UZIVATEL/Maildir/."
}
Pokud použijete toto řešení, máte stále ještě možnost používat pro každého uživatele jeho vlastní třídící pravidla generovaná skriptem, který používám ve svém návodu na mailserver. |
Webhosting Klenot.cz |
Vice prijemcu
Ahoj,
Pouzil jsem tento zpusob ale mam problem, ze pokud poslu zpravu na vic prijemcu v domene tak se mi vytvori spatne slozky, neco jako: /home/vmail/prvni@domena.cz/druha@domena.cz/Maildir/ ....
Vice prijemcu
Ahoj,
Pouzil jsem tento zpusob ale mam problem, ze pokud poslu zpravu na vic prijemcu v domene tak se mi vytvori spatne slozky, neco jako: /home/vmail/prvni@domena.cz/druha@domena.cz/Maildir/ ....
RE: Vice prijemcu
Omlouvam se, ze jsem dotaz poslal dvakrat.
Nasel jsem odpoved a reseni meho problemu viz nize.
Pridal jsem do main.cf nasledujici radky:
maildrop_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
Poslat nový komentář