Open Exchange mit Postfix sprechen lassen
Das hier soll mir in erster Linie als Gedächtnisstütze dienen, andere können es auch gerne als Tutorial nutzen.
Worum gehts: Habe einen Server mit Open-Exchange drauf, und nun soll Postfix und Dovecot so konfiguriert werden das Mails angenommen und versendet werden. Die Logindaten usw. sollen von Openexchange genommen werden.
Howtoquellen:
Idee: Ich erzeuge mir aus der Open-Exchange Datenbank mittels views die Tabellen die ich für Postfix/Dovecot benötige. Die binde ich dann entsprechend ein.
1. Postfix_domains
# mysql> CREATE VIEW postfix_domains AS SELECT DISTINCT RIGHT(mail,LENGTH(mail)-INSTR(mail,"@")) AS domain FROM user WHERE imapServer='imap://localhost' ;
Es wird in unter den Usereinstellungen gesucht, welche User auf den lokalen imap-Server verbinden. Bei den dazugehörigen Domains gehe ich davon aus, daß der Mailserver für sie zuständig ist.
Die mysql-virtual-mailbox-domains.cf sieht dann entsprechend aus:
user = mailuser
password = mailuser2007
hosts = 127.0.0.1
dbname = oxdatabase_6
query = SELECT 1 FROM postfix_domains WHERE domain='%s'
Als drittes sollten wir dem mailuser noch Leserechte auf die Tabelle geben:
#mysql> GRANT SELECT ON oxdatabase_6.postfix_domains TO mailuser@localhost IDENTIFIED BY 'mailuser2007' ;
2. postfix_users
mysql> CREATE VIEW postfix_users AS SELECT mail AS email ,userPassword AS password FROM user WHERE imapServer='imap://localhost' ;
/etc/postfix/mysql-virtual-mailbox-maps.cf
user=mailuser
password = mailuser2007
hosts = 127.0.0.1
dbname = oxdatabase_6
query = SELECT 1 FROM postfix_users WHERE email='%s'
RECHTE:
GRANT SELECT ON oxdatabase_6.postfix_users TO mailuser@localhost IDENTIFIED BY 'mailuser2007' ;
Die Weiterleitungstables hab ich mal weggelassen. Bis jetzt brauch ich sie noch nicht. Und mal schauen vielleicht kommt dabei ja auch ein zweiter Teil raus.
Dann das Tutorial weiter abarbeiten, dabei bei Datenbankzugriffen drauf achten dir richtigen Daten zu nehmen.
UND GANZ WICHTIG: /etc/dovecot/dovecot-sql.conf
driver = mysql
connect = host=127.0.0.1 dbname=oxdatabase_6 user=mailuser password=mailuser2007
default_pass_scheme = SHA
password_query = SELECT email as user, password FROM postfix_users WHERE email='%u';
Amavis und Spamassasin stehen noch nicht. Da muss ich später nochmal schauen.
Auf jeden Fall läufts so momentan mit etch und OX 6.6
Netter Spicker, hast Du vor diesen noch zu erweitern?
mfg
Daniel
Hallo,
ich habe auch die OX Community Edition installiert. Alles neu auf openSUSE. Alles funktionierte bis auf mail.
Ich kam auf deine Seite uns sah mit die einzelnen Schritte an.
Bei diesem Schritt (#mysql> GRANT SELECT ON oxdatabase_6.postfix_domains TO mailuser@localhost IDENTIFIED BY ‘mailuser2007′ ist mir aufgefallen, dass es in der DB “xdatabase_6″ ein Feld “postfix_domains” gibt. Ich habe das nicht wenn ich dieses haben will, ist Schritt eins von nöten? ( # mysql> CREATE VIEW postfix_domains AS SELECT DISTINCT RIGHT(mail,LENGTH(mail)-INSTR(mail,”@”)) AS domain FROM user WHERE imapServer=’imap://localhost’ richtig?
also müsste ich doch erst eine Datenbank auswählen – nämlich die “oxdatabase_6″ richtig?
Sorry bin nicht der SQL Guru
Danke
Michael
M.Reisenweber@computernetzesysteme.de
with the need for a virtual_alias_maps create a etc/postfix/mysql-virtual-alias-maps.cf with …
user=mailuser
password = mailuser2007
hosts = 127.0.0.1
dbname = oxdatabase_6
query = SELECT mail FROM postfix_alias WHERE value=”%s”
And a mysql:/etc/postfix/mysql-email2email.cf with …
user=mailuser
password = mailuser2007
hosts = 127.0.0.1
dbname = oxdatabase_6
query = SELECT email FROM postfix_users WHERE email=’%s’
And set in main.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
Sorry forgot
CREATE VIEW postfix_alias AS SELECT mail,value FROM `user` u JOIN `user_attribute` a ON u.id = a.id AND u.cid = a.cid;
And I changed
CREATE VIEW postfix_users AS SELECT mail AS email FROM user WHERE imapServer=’imap://127.0.0.1:143′
And created for Dovecot
CREATE VIEW dovecot_users AS SELECT imapLogin AS login ,userPassword AS password ,mail AS user FROM `user` WHERE imapServer=’imap://127.0.0.1:143′
Changed dovecot-sql.conf with
password_query = SELECT user, password FROM dovecot_users WHERE login = ‘%u’
All these changes are based on
http://workaround.org/ispmail/lenny/