Fórum Root.cz
Hlavní témata => Server => Téma založeno: fleg 29. 08. 2012, 22:44:03
-
Pouzivam uz roky kombinaciu Postfix+Courier+Mysql a najnovsie, kde je viac domen a adries aj Postfixadmina. Na Squeezy serveroch mam vsak nasledovny problem.
Postfixadmin "vytvori" maildiry v tvare /home/vmail/user@domena.tld a nie v tvare /home/vmail/domena.tld/user@domena.tld. Presiel som konfigy Postfixu aj couriera, zvysil som debuging level, takze som studoval asi 100 riadkov v logu pri vytvarani maildiru a posielani uvitacieho mailu a som rovnako sprosty ako som bol na zaciatku.
Jedine co sa totizto zmenilo je, ze som presiel casom na novych serveroch na novsie verzie Postfixu+couriera a postfixadmina. V konfigoch nevidim ziaden rozdiel, trosku sa zmenili tabulky, ale tam problem nevidim.
Vyzera to akoby maildrop(?) vytvoril proste len adresar z uzivatela a na domenu sa vykaslal, lenze ja netusim preco.
-
A co takhle k tomu dodat víc informací?
Třeba
1. verze všech dotčených sw
2. grep maildrop master.cf
3. maildrop -V 7 -d <user>
4. main.cf:
virtual_mailbox_domains = ?
virtual_transport = ?
virtual_mailbox_maps = ?
virtual_alias_maps = ?
mailbox_command = ?
mailbox_command_maps = ?
5. obsahy map souboru?
6. maildroprc?
7. co rika sendmail -bv <user> ?
-
No zalezi co pouzivas ako local delivery agent. Ak je to maildrop, tak tomu to musis povedat aby vytvaral ake chces.
-
No to je ta otazka, na ktoru neviem odpoved. Kedze nemam definovany lokalneho delivery agenta v konfigu Postfixu (main.cf), tak som si myslel, ze je to maildrop. Ale vraj je to procmail. Ok problem je, ze nemam na servri konfiguradcny subr jak maildropu tak procmailu, cize asi bezia zase v nejakom defaulte.
Myslim, ze problem bude v defaulte maildropu(procmailu), starsie verzie debianu asi mali nastavene nieco ine ako ma Squeezy.
Odpoviem, este an otazky predrecnika.
1. Verzie sw su vsetko z depozitarov Squeezy, cize na http://packages.debian.org/squeeze/mail/
2. Standard Postfixu
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
3. Toto asi nema zmysel, kedze mam virtual users z mysql a nie systemovych
4. Konfig mam robeny podla starsich konfigov a http://codepoets.co.uk/2009/postfixadmin-setupinstall-guide-for-virtual-mail-users-on-postfix/
Podtstatne je, ze nemam definovany mailbox_command (takze asi ten procmail?) a ostatne je klasicky
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf
virtual_mailbox_base = /home/vmail
local_recipient_maps = $virtual_mailbox_maps
Obsahy map suborov su z rovnake ako vo vyssie zmienovanom howto
Maildroprc nemam
Posledny prikaz nieviem, co ma dokazat, prikladam vypis.
root@hosting:/etc/postfix# sendmail -bv fleg
Mail Delivery Status Report will be mailed to <root>
-
Posledny prikaz nieviem, co ma dokazat, prikladam vypis.
Nejde o vypis, jde o to, ze se stane to, co pise:
Mail Delivery Status Report will be mailed to <root>
Takze to chce jeste ten mail, co prisel rootovi.
-
Jo a co se týče toho "nevím, co mi to doručuje", tak to najdeš mj. v logu postfixu:
Aug 30 19:44:31 XXXXX postfix/local[40444]: XXXXXXXXXX: to=<XXXXX@XXXXX.cz>, relay=local, delay=0.17, delays=0.01/0.01/0/0.15, dsn=2.0.0, status=sent (delivered to command: /usr/local/bin/procmail)
-
Nastavil som debug_peer_level na 5 a napriek tomu vidim len toto;
Aug 29 19:53:16 hosting postfix/virtual[1639]: BEFF86EA1E: to=<asdf@kratatest.sk>, relay=virtual, delay=0.13, delays=0.09/0.01/0/0.03, dsn=2.0.0, status=sent (delivered
to maildir)
-
Nastavil som debug_peer_level na 5 a napriek tomu vidim len toto;
No však to je to, cos potřeboval vědět - přes žádný externí program se nedoručuje, takže pak už jenom nastudovat http://www.postfix.org/virtual.8.html
-
No a to je ten problem, pretoze konfig a cf subor mam rovnaky ako na starsom systeme a napriek tomu sa ta domena vynecha.
base mam definovany virtual_mailbox_base = /home/vmail
maps mam definovany ako virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf
kde je query = SELECT maildir FROM mailbox WHERE username='%s' AND active = true
mailbox je tabulka a maildir a username polia v nej.
Otazka znie preco mam v maildir poli zapisany maildir v tvare user@domena.tld a nie domena/user@domena.tld a kto ho tam tak zapisal, ked starsia verzia debiana mi ho zapisala v tvare aj s domenou?
-
Asi nechápu pointu.
1. Maily ti doručuje sám postfix. Procmail je samostatný program, který s postfixem nemá vůbec nic společnýho. Těžko se teda může něco defaultně doručovat přes procmail.
2. Že se opravdu nedoručuje ničím jiným, než pomocí virtual(8), jsme vyloučili pomocí záznamu z logu.
3. v tom manu, co jsem odkazoval, se píše naprosto jasně:
The mailbox pathname is constructed as follows:
$virtual_mailbox_base/$virtual_mailbox_maps(recipient)
where recipient is the full recipient address
...takže se to chová přesně tak, jak je v manu.
Jestli se to někdy chovalo nějak jinak, tak jsi to měl asi nějak jinak nastavený, nebo to byla nějaká verze, která se prostě chovala jinak. Nechápu, co řešíš.
-
No vidis mne dnes tvrdil miestny guru, ktoremu celkom verim, ze postfix si nic sam nedorucuje, ze odjakziva dorucuje postu procmail. Mne nebolo preto jasne, preco sa musel procmail kedysi definovat v konfigu potom.
Co riesim? No, ze ak mas desiatky domen a stovky maildirov lepsie sa v tom orientuje, ked to mas na disku rozdelene aj podla domen, nielen podla mailboxov.
Na verzii 2.1.5 mi to funguje tak ako som popisal, mozno sa nieco zmenilo medzitym v postfixe samotnom. Riesenim by asi bolo pouzitie maildropu alebo procmailu predpokladam s nastavenim ich konfigov.
-
No vidis mne dnes tvrdil miestny guru, ktoremu celkom verim, ze postfix si nic sam nedorucuje, ze odjakziva dorucuje postu procmail.
Hm :)
Riesenim by asi bolo pouzitie maildropu alebo procmailu predpokladam s nastavenim ich konfigov.
Nemám s virtuálama zkušenosti, takže neumím poradit, co je nejlepší, ale spíš bych asi jako první krok vyzkoušel, jestli náhodou ta mapa virtual_mailbox nemůže obsahovat i cestu. Proč by nemohla? Prostě user@domain.cz by se namapovalo na domain.cz/user@domain.cz. Ale jak říkám, vyzkoušený to nemám, snad někdo jinej poradí trochu inteligentnějc :)
-
Pomocou prikazu postconf zistis ktory je tvoj LDA
-
Takze moj lokalny guru, ktory sa tak sekol s tym Procmailom zabodoval a tu je riesenie.
"Chyba" bola ako som spravne tusil vo volani virtual_mailbox_maps.cf, kde som mal:
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = true
toto som nahradil:
query = SELECT concat(domain, '/', maildir) as maildir FROM mailbox WHERE username='%s' AND active = true
a teraz mam maildir napriklad v tvare /home/vmail/gerphi.com/ivan@gerphi.com
-
Tak jsem to tipl správně, že by to takhle mohlo jít, to jsem rád :)
-
Ako to uz vsak byva vyriesenim jedneho problemu nastal problem druhy.
Hodil som tam vevericku ako webmail a ta mi zahlasila, ze hlada jednoznacne maildir v tvare /domena/user a nie domena/user@domena.
Ok nebude sa sturat vo vevericke a upravil sql select na
query = SELECT concat(domain, '/', substring_index(maildir, '@', 1)) as maildir FROM mailbox WHERE username='%s' AND active = true
tento select by mal hodit maildir v tvare domena/user.
Lenze zrazu dostavam takuto chybovu hlasku.
Aug 31 18:58:47 hosting postfix/virtual[28399]: 38D3A6ECB1: to=<fleg@fleg.sk>, relay=virtual, delay=502, delays=501/0.02/0/0.09, dsn=4.2.0, status=deferred (delivery fa
iled to mailbox /home/vmail/fleg.sk/fleg: unable to create lock file /home/vmail/fleg.sk/fleg.lock: No such file or directory)
A som zase na zaciatku riesenia dalsieho problemu;o).
-
Tak este dokoncim ak by to niekomu pomohlo.
Este som si musel upravit sql select v /etc/courier/authmysqlrc, kde som dal
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(username,'@',-1),'/',username,'/')
a vevericka sa nalogovala;o).