Dennis: Postfix mit MySQL-Support unter Debian

Beitrag lesen

Guten Morgen,

seit zwei Stunden verzweifle ich nun schon schier daran, Postfix als MTA mit MySQL-Support aufzusetzen.

Zuerst habe ich auf meinem Debian-System mit apt-get die Packete mysql-server-4.1, mysql-client-4.1, postfix und postfix-mysql installiert. Nach langem rumprobieren und unendlichen Fehlern habe ich den Verdacht bekommen, dass die Kombination von Packeten nicht möglich ist.

Das Packet postfix-mysql basiert auf libmysqlclient10, was für meinen Augen der Client für MySQL 3.x ist. Ich hatte jedoch MySQL 4.1 installiert. Ein Downgrade auf 3.x oder auch "nur" auf 4.0 kommt für mich wegen fehlender Funktionen auf keinenfall in Frage.

Nun habe ich weitergeschaut und den testing-Zweig von Debian mal etwas genauer unter die Lupe genommen. Dort habe ich dann mysql-server in der Version 5.0 gefunden, sowie postfix-mysql basierend auf libmysqlclient15off - was für meine Augen der MySQL-Client für Version 5.0 ist. Also habe ich diese Packete aus dem testing-Zweig installiert.

Der entscheidende Abschnitt meiner main.cf sieht so aus:

virtual_mailbox_maps = mysql:/etc/postfix/mysql-acc/virtboxes
  virtual_maps = mysql:/etc/postfix/mysql-acc/virtual
  transport_maps = mysql:/etc/postfix/mysql-acc/transport
  virtual_mailbox_base = /var/spool/virtboxes
  virtual_uid_maps = mysql:/etc/postfix/mysql-acc/uid
  virtual_gid_maps = mysql:/etc/postfix/mysql-acc/gid
  virtual_minimum_uid = 500

Die Dateien für den MySQL Zugriff sehen allesamt so aus (natürlich mit unterschiedlichen Tabellen- und Spaltennamen):

user=mailer
  password=abc
  dbname=system
  table=mail_transport
  select_field=transport
  where_field=domain
  hosts=localhost

Der User mailer existiert und das gesetzte Passwort ist korrekt, wie mir ein Login über mysql -u mailer -p gezeigt hat.

Nun bin ich auf einen anderen Server (bei einem anderen Provider) gegangen, und habe folgendes probiert (bevor ich MySQL integriert habe hat das geklappt, ich konnte erfolgreich eine Mail versenden):

driehle@v-10040 ~ $ telnet 0.0.0.0 25
  Trying 0.0.0.0...
  Connected to 0.0.0.0.
  Escape character is '^]'.
  220 meinserver.example.org ESMTP
  helo meinserver.example.org
  250 meinserver.example.org
  mail from: email@another.example.com

An dieser Stelle hängt sich die Verbindung auf - Postfix antwortet nichts mehr und spammt dafür /var/log/mail.log voll:

Sep 11 05:42:20 localhost postfix/smtpd[19015]:
    connect from v-10040[...]
  Sep 11 05:42:36 localhost postfix/trivial-rewrite[18875]: warning:
    connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
  Sep 11 05:42:36 localhost postfix/trivial-rewrite[18875]: fatal:
    mysql:/etc/postfix/mysql-acc/virtual(0,100): table lookup problem
  Sep 11 05:42:37 localhost postfix/smtpd[19015]: warning:
    premature end-of-input on private/rewrite socket while reading input attribute name
  Sep 11 05:42:37 localhost postfix/smtpd[19015]: warning:
    problem talking to service rewrite: Success
  Sep 11 05:42:37 localhost postfix/master[18871]: warning:
    process /usr/lib/postfix/trivial-rewrite pid 18875 exit status 1
  [... hier wiederholen sich die Meldungen teilweise ...]
  Sep 11 05:42:39 localhost postfix/master[18871]: warning:
    /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling

Mein Problem ist, dass ich nicht so genau weiß, was ich falsch mache - es handelt sich hierbei um mein erstes Postfix, dass ich aufsetze. Ich gehe hierbei ziemlich strikt nach der Anleitung aus dem Buch "Dezidierte Webserver - einrichten und administrieren" von Michael Hilscher vor.

Die eigentliche Einrichtung hat ja auch schon geklappt, der Server hat funktioniert, sämtliche Versuche meinerseits ihn als Spam-Relay zu benutzen sind erfolgreich gescheitert. Aber ich will für meine Userverwaltung eben die E-Mail Accounts über MySQL verwalten und benötige deshalb einen MySQL-Support in Postfix.

Liegt es einfach nur daran, dass irgendwo ein Versions-Konflikt vorliegt? Kann ich das Problem lösen indem ich mir die Mühe machen Postfix selber zu kompilieren?

Ich werde auch nicht ganz schlau aus der Fehlernummer 2 - ich konnte über Google irgendwie keine Beschreibung finden, was denn nun Fehler 2 bedeutet. Den grundsätzlichen Tipps des MySQL-Handbuches zu diesem Fehler bin ich nachgegangen, der Server läuft auch:

18280 pts/0    00:00:00 mysqld_safe
  18341 pts/0    00:00:00 mysqld

Allerdings macht mich das pts/0 etwas stutzig... Gestartet habe ich ihn über /etc/init.d/mysql start.

Viele Grüße aus Kanada,
 ~ Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Das ist eine Ehrlichkeit, die an Blödheit grenzt. (Thomas Gottschalk)