Strona 1 z 1

Postfix, lokalni uŻytkownicy z bazy danych

: 27 stycznia 2010, 12:49
autor: dijo
Cześć.
Próbuje od jakiegoś czasu skonfigurować postfixa tak, żeby nie korzystał z wpisów w /etc/passwd tylko z bazy danych mysql. Czy da się to zrobić bez używania wirtualnych skrzynek? Na poprzednim serwerze działało to tak, że użytkownicy byli trzymani w bazie danych i równolegle w pliku /etc/passwd, ale były problemy z dodawaniem i usuwaniem, bo czasem się nie zgadzało. Próbuję teraz przerobić część poradnika stąd: http://howtoforge.net/virtual-users-dom ... tu-9.10-p2 ale nie wychodzi. Próbowałem ustawić:

Kod: Zaznacz cały

local_recipient_maps=proxy:mysql:/etc/postfix/mysql/mailboxes.cf
Zapytanie do mysql:

Kod: Zaznacz cały

SELECT login FROM users WHERE login='%u'
ale nie działa. Co może być źle? Próbowałem z różnymi ustawieniami, ale za każdym razem w logach wypisuje, że nie ma takiego użytkownika.

: 28 stycznia 2010, 19:40
autor: dong
Jaki:

Kod: Zaznacz cały

login
Chyba powinno być:

Kod: Zaznacz cały

email

Też przerabiałem ten poradnik - kilka razy. I dopiero, za którymś razem udało się uruchomić wszystko prawidłowo. Jeśli mimo poprawnego zapytania nie będzie działać poprawnie to na Twoim miejscu spróbowałbym jeszcze raz. W tak długim poradniku łatwo coś przeoczyć, coś źle wkleić.

PS.
Prawidłowo zapytanie nie powinno brzmieć:

Kod: Zaznacz cały

SELECT email FROM users WHERE email='%s'

: 30 stycznia 2010, 18:22
autor: dijo
Tak, wiem. Według poradnika (z wirtualnymi kontami) już działa, ale poczta trafia do /home/vmail/domena/użytkownik a wolałbym, żeby trafiała do katalogu domowego użytkowników. Trzeba było dopisać jeszcze mailbox_transport=virtual żeby dochodziło.

Według manuala %s to jest cały email, a %u to to co przed małpą, dlatego porównuje z polem login, ale mimo to nie widzi użytkowników. Jakieś pomysły?

Plik main.cf z lokalnymi użytkownikami:

Kod: Zaznacz cały

myhostname = mail.timeofwrath.com
mydestination = mail.timeofwrath.com, timeofwrath.com, localhost, localhost.localdomain
mynetworks = 127.0.0.0/8

home_mailbox = mail/

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
# smtpd_sasl_type = dovecot
# smtpd_sasl_path = private/auth
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key

# transport_maps = proxy:mysql:/etc/postfix/mysql/virtual_transports.cf

local_recipient_maps = proxy:mysql:/etc/postfix/mysql/mailboxes.cf
mailbox_command = maildrop -d ${USER}    # bez tego tez nie dziala

proxy_read_maps = $local_recipient_maps $mydestination $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
Próbowałem też z innymi opcjami w mailbox_command, ale zawsze w logach pokazuje, że nie ma takiego użytkownika.