Toon posts:

Postfix + Postgres authenticatie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben al sinds gisteravond bezig om SQL authenticatie voor Postfix te configureren.
Hiervoor heb ik een nieuwe database gemaakt in mijn Postgres-server. Daarbij een paar tabellen, met daarin de gebruikersgegevens, zoals loginnaam, Maildir en wachtwoord.

Daarnaast heb ik de configuratie van Postfix aangepast, zodat het gegevens uit de Postgres database kan ophalen.

Dit zijn de configuratieregels die dat doen:
code:
1
2
3
4
5
6
7
transport_maps = pgsql:/usr/local/etc/postfix/sql/transport.cf
virtual_uid_maps = pgsql:/usr/local/etc/postfix/sql/uids.cf
virtual_gid_maps = pgsql:/usr/local/etc/postfix/sql/gids.cf
virtual_mailbox_base = /home
virtual_mailbox_maps = pgsql:/usr/local/etc/postfix/sql/mailboxes.cf
#virtual_maps = pgsql:/usr/local/etc/postfix/sql/virtual.cf
virtual_alias_maps = pgsql:/usr/local/etc/postfix/sql/aliases.cf

Zodra een e-mail wordt gestuurd naar een user in de usertabel gaat alles goed:
De user wordt gevonden, evenals de Maildir. Daarin wordt de mail afgeleverd. Dus niks aan de hand
code:
1
2
3
4
5
6
Mar  5 17:43:40 epauli postfix/smtpd[79137]: dict_pgsql_lookup using sql query: select mailbox from postfix_mailboxes where userid = 'epauli'
Mar  5 17:43:40 epauli postfix/smtpd[79137]: dict_pgsql_get_active: found active connection to host localhost
Mar  5 17:43:40 epauli postfix/smtpd[79137]: dict_pgsql: successful query from host localhost
Mar  5 17:43:40 epauli postfix/smtpd[79137]: dict_pgsql_lookup: retrieved 1 rows
Mar  5 17:43:40 epauli postfix/smtpd[79137]: maps_find: local_recipient_maps: pgsql:/usr/local/etc/postfix/sql/mailboxes.cf(0,100): epauli = epauli/Maildir/
Mar  5 17:43:40 epauli postfix/smtpd[79137]: mail_addr_find: epauli@epauli.dyndns.org -> epauli/Maildir/

Als ik een alias maak, bijvoorbeeld edwin -> epauli, dan gaat het fout. Tenminste, Postfix doet iets fout.
code:
1
2
3
4
Mar  5 17:44:37 epauli postfix/smtpd[79137]: dict_pgsql_lookup using sql query: select destination from aliases where alias = 'edwin@epauli.dyndns.org'
Mar  5 17:44:37 epauli postfix/smtpd[79137]: dict_pgsql_get_active: found active connection to host localhost
Mar  5 17:44:37 epauli postfix/smtpd[79137]: dict_pgsql: successful query from host localhost
Mar  5 17:44:37 epauli postfix/smtpd[79137]: dict_pgsql_lookup: retrieved 0 rows

Als ik dezelfde query "select destination from aliases where alias = 'edwin@epauli.dyndns.org'" in phpPgAdmin invoer of op een andere manier handmatig aan Postgres geef krijg ik wel een resultaat terug.

De alias configuratie ziet er zo uit:
code:
1
2
3
4
5
6
7
user = mailreader
password = $password
dbname = imap
table = aliases
select_field = destination
where_field = alias
hosts = localhost

Daar zie ik niks raars.

Ben ik toch nog iets vergeten?