Fórum Root.cz

Hlavní témata => Server => Téma založeno: fleg 29. 08. 2012, 22:44:03

Název: Ako zmenit maildir
Přispěvatel: 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.
Název: Re:Ako zmenit maildir
Přispěvatel: Mirek Prýmek 30. 08. 2012, 07:46:51
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> ?
Název: Re:Ako zmenit maildir
Přispěvatel: chladic01 30. 08. 2012, 13:13:59
No zalezi co pouzivas ako local delivery agent. Ak je to maildrop, tak tomu to musis povedat aby vytvaral ake chces.
Název: Re:Ako zmenit maildir
Přispěvatel: fleg 30. 08. 2012, 20:04:52
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>
Název: Re:Ako zmenit maildir
Přispěvatel: Mirek Prýmek 30. 08. 2012, 20:19:29
Posledny prikaz nieviem, co ma dokazat, prikladam vypis.
Nejde o vypis, jde o to, ze se stane to, co pise:

Citace
Mail Delivery Status Report will be mailed to <root>

Takze to chce jeste ten mail, co prisel rootovi.
Název: Re:Ako zmenit maildir
Přispěvatel: Mirek Prýmek 30. 08. 2012, 20:22:54
Jo a co se týče toho "nevím, co mi to doručuje", tak to najdeš mj. v logu postfixu:

Citace
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)
Název: Re:Ako zmenit maildir
Přispěvatel: fleg 30. 08. 2012, 22:08:12
Nastavil som debug_peer_level na 5 a napriek tomu vidim len toto;
Citace
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)
Název: Re:Ako zmenit maildir
Přispěvatel: Mirek Prýmek 30. 08. 2012, 22:31:38
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
Název: Re:Ako zmenit maildir
Přispěvatel: fleg 30. 08. 2012, 22:59:11
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?
Název: Re:Ako zmenit maildir
Přispěvatel: Mirek Prýmek 30. 08. 2012, 23:28:06
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ě:

Citace
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šíš.
Název: Re:Ako zmenit maildir
Přispěvatel: fleg 30. 08. 2012, 23:45:57
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.
Název: Re:Ako zmenit maildir
Přispěvatel: Mirek Prýmek 30. 08. 2012, 23:52:00
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 :)
Název: Re:Ako zmenit maildir
Přispěvatel: chladic01 31. 08. 2012, 12:26:53
Pomocou prikazu postconf zistis ktory je tvoj LDA
Název: Re:Ako zmenit maildir
Přispěvatel: fleg 31. 08. 2012, 20:32:02
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:
Citace
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = true
toto som nahradil:
Citace
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
Název: Re:Ako zmenit maildir
Přispěvatel: Mirek Prýmek 31. 08. 2012, 20:36:06
Tak jsem to tipl správně, že by to takhle mohlo jít, to jsem rád :)
Název: Re:Ako zmenit maildir
Přispěvatel: fleg 31. 08. 2012, 21:09:46
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
Citace
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.
Citace
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).
Název: Re:Ako zmenit maildir
Přispěvatel: fleg 31. 08. 2012, 21:26:27
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).