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:
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
Als ik een alias maak, bijvoorbeeld edwin -> epauli, dan gaat het fout. Tenminste, Postfix doet iets fout.
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:
Daar zie ik niks raars.
Ben ik toch nog iets vergeten?
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?