Portál AbcLinuxu, 10. května 2025 01:56
Postfix môže mať virtualusertable v databáze, napríklad takto:
Tabuľka v DB:
mysql> SELECT * FROM virtual_users; +----+------------------+--------------------------+ | id | email | deliver_to | +----+------------------+--------------------------+ | 1 | araxon@araxon.sk | araxon | | 2 | spam@araxon.sk | spamd spam@absolution.sk | +----+------------------+--------------------------+ 2 rows in set (0.00 sec)
/etc/postfix/mysql_virtualuser.cf:
# tu je nadefinovany zoznam 'destinations', ktore sa tahaju z MySQL hosts = unix:/var/run/mysqld/mysqld.sock user = postfix password = dopln_si_heslo dbname = postfix # dotaz bude vyzerat takto: # SELECT <select_field> FROM <table> WHERE <where_field> = '<hladany_kluc>' [<additional_conditions>] table = virtual_users select_field = deliver_to where_field = email additional_conditions =
/etc/postfix/main.cf:
virtual_alias_maps = mysql:/etc/postfix/mysql_virtualuser.cf
Zmena v databáze sa v postfixe potom premietne okamžite.
virtual_alias_maps = hash:/etc/postfix/virtualuser, mysql:/etc/postfix/mysql_virtualuser.cfV tomto prípade bude teda najskôr hľadať staromódne cez virtualuser.db, až potom keď tam nenájde to čo hľadal, tak pôjde do databázy.
postfix/trivial-rewrite[12331]: fatal: mysql:/etc/postfix/mysql_virtualuser.cf(0,lock|fold_fix): table lookup problem
kde muze byt problem?
Diky...
lighthouse ~ # postconf -m btree cidr environ hash mysql pcre proxy regexp static unixAk áno, tak potom ešte skús hľadanie cez postmap na nejakú hodnotu, ktorú si do DB zadával...
lighthouse ~ # postmap -q araxon@araxon.sk mysql:/etc/postfix/mysql_virtualuser.cf araxonMožno Ti len nefunguje spojenie s mysql...
# postmap -q kouda mysql:/etc/postfix/mysql_virtualuser.cf
postmap: warning: connect to mysql server unix:/var/run/mysqld/mysqld.sock: Access denied for user 'postfix'@'localhost' (using password: YES)
pritom user existuje a ma plna prava na celou db.... (ten kouda je v te tabulce postfix_users)
# postmap -q kouda@mojedomena.cz mysql:/etc/postfix/mysql_virtualuser.cf
debianpc:/var/log
kouda
#
nejake logy:
mail.err - http://www.pastebin.cz/show/2681
mail.info - http://www.pastebin.cz/show/2682
konfigurak - http://www.pastebin.cz/show/2683
struktura db - http://www.pastebin.cz/show/2679
mail.log - http://www.pastebin.cz/show/2684 (odeslani maila pres seznam)
Odeslani proste nejde... (pokud zakomentuji v main.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtualuser.cf
tak to samozrejme jede....)
Ohledne chrootu nic nevim - ja to nainstaloval jen aptitude install postfix + aptitude isntall postfix-mysql a v konfigu main.cf jsem nic ohledne chrootu nic nenastavoval... Ted me napada - nema nahodou postfix-mysql take nejakz konfigurak co bych mel nastavit? ja nastavuji jen ten main.cf....
~# ln /var/run/mysqld /var/spool/postfix/var/run/mysqld
ln: `/var/run/mysqld': hard link not allowed for directory
~# ln /var/run/mysqld/mysqld.sock /var/spool/postfix/var/run/mysqld
ln: creating hard link `/var/spool/postfix/var/run/mysqld' to
`/var/run/mysqld/mysqld.sock': nenĂ souborem ani adresĂĄĹem
pise ze neexistuje pritom adr /var/run/mysqld existuje a je v nem jeden soubor mysql.sock
:/var/run/mysqld# dir
mysqld.pid mysqld.sock
pokud se na ten subor kouknu pres mc tak ma velikost 0, je cerny a pred nazvem ma "="...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.