Kann keine Mails versenden

MF-Scripts

New Member
[Postfix] Kann keine Mails versenden

Ich hab nach diesem Tut RikWik : Postfix- Mailserver Postfix etc. installiert. Allerdings will das Mails verschicken noch nicht so recht (rest hab ich noch nich getestet)
Egal, wie ich es mache (telnet, mail (PHP und über SSH)), das geht nicht.
Folgendes erscheint in der mail.info

Jan 26 17:36:25 h1179552 postfix/cleanup[7602]: warning: premature end-of-input on private/rewrite socket while reading input attribute name
Jan 26 17:36:25 h1179552 postfix/cleanup[7602]: warning: problem talking to service rewrite: Connection reset by peer
Jan 26 17:36:25 h1179552 postfix/master[5791]: warning: process /usr/lib/postfix/trivial-rewrite pid 7822 exit status 1
Jan 26 17:36:25 h1179552 postfix/smtpd[5835]: warning: premature end-of-input on private/rewrite socket while reading input attribute name
Jan 26 17:36:25 h1179552 postfix/smtpd[5835]: warning: problem talking to service rewrite: Success
Jan 26 17:36:25 h1179552 postfix/smtpd[7505]: warning: premature end-of-input on private/rewrite socket while reading input attribute name
Jan 26 17:36:25 h1179552 postfix/smtpd[7505]: warning: problem talking to service rewrite: Success
Jan 26 17:36:25 h1179552 postfix/master[5791]: warning: process /usr/lib/postfix/trivial-rewrite pid 7823 exit status 1
Jan 26 17:36:25 h1179552 postfix/master[5791]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling

und das hier in der mail.err:

Jan 26 17:37:27 h1179552 postfix/trivial-rewrite[7829]: fatal: mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf(0,100): table lookup problem

Postfix läuft im CHMOD, daher habe ich folgendes im init Script ergänzt:
case "$1" in
[...]
start)
[...]
umask $oldumask

if [ -x /var/spool/postfix/var/run/mysqld/mysqld.sock ] ; then
rm /var/spool/postfix/var/run/mysqld/mysqld.sock
fi
ln /var/run/mysqld/mysqld.sock /var/spool/postfix/var/run/mysqld/mysqld.sock
[...]
wie im Tut.

MySQL läuft. Und eigentlich kann Postfix auf MySQL zugreifen. Bei den anderen Dateien gibt es ja auch keine Fehler.
Und es ist auch immer nur ein Fehler in mysql-virtual_mailbox_domains.cf. Nie in den anderen Dateien.

Hat jemand eine Idee? Wäre euch sehr dankbar, bin am verzweifeln :(
 
Last edited by a moderator:
Code:
if [ -x /var/spool/postfix/var/run/mysqld/mysqld.sock ] ; then
 rm /var/spool/postfix/var/run/mysqld/mysqld.sock
 fi
 ln /var/run/mysqld/mysqld.sock /var/spool/postfix/var/run/mysqld/mysqld.sock

Erstmal ist "-x" der falsche Test, der Socket sollte eigentlich nie ausführbar sein, nimm besser "-f".

Dann ist dein chroot wahrscheinlich in /var/spool/postfix, dein postfix kann also keine Dateien ausserhalb dieses Verzeichnissbaumes lesen; wenn du nun mal schaust, wohin dein Link zeigt, kommst du vielleicht selbst auf deinen Fehler.


EDIT:
Hm, eigentlich müsste das ganze gehen, da ja Hardlink. Hast du alle mysql-Tabellen angelegt? Dreh mal das Logging im postfix hoch, damit das ganze etwas gesprächiger wird.
 
Last edited by a moderator:
Die MySQL Tabellen bestehen. Hab zwei mal nachgeguckt ;)
Logging dreh ich jetzt gleich mal hoch und dann mal gucken ;)

EDIT:

Ok, jetzt ist der Fehler eindeutig.
Jan 27 01:34:38 h1179552 postfix/trivial-rewrite[7187]: fatal: mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf(0,100): table lookup problem
Jan 27 01:34:38 h1179552 postfix/trivial-rewrite[7190]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Jan 27 01:34:38 h1179552 postfix/trivial-rewrite[7190]: fatal: mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf(0,100): table lookup problem
Jan 27 01:34:38 h1179552 postfix/trivial-rewrite[7191]: warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
Jan 27 01:34:38 h1179552 postfix/trivial-rewrite[7191]: fatal: mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf(0,100): table lookup problem
Aber wieso geht das bei den anderen Dateien, aber nicht bei der? :/


EDIT2: Omg, ich bin dumm. Das ist der Grund, wieso ich keine Mails empfangen kann. Das kommt da noch hinzu. Ich hab mal ne Testmail an mich geschickt und seitdem versucht der alle 1 min die Mail zu speichern laut Logs.

Das hier ist der Fehler, der in den Logs steht, nachdem ich das php Script asugeführt habe:
Jan 27 02:11:27 h1179552 postfix/smtpd[11582]: rewrite stream disconnect
Jan 27 02:11:27 h1179552 postfix/smtpd[11582]: connect to subsystem private/rewrite
Jan 27 02:11:27 h1179552 postfix/smtpd[11582]: send attr request = resolve
Jan 27 02:11:27 h1179552 postfix/smtpd[11582]: send attr address = mail@yourdomain.com
Jan 27 02:11:27 h1179552 postfix/smtpd[11582]: private/rewrite socket: wanted attribute: transport
 
Last edited by a moderator:
Code:
warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)

Das ist dein Problem. Dein postfix konnektiert sich zum mysql gar nicht per Socket, sondern über TCP. Da solltest du schnell den richtigen Port einstellen ...
 
Hmm, wie mache ich das?
Ich habe in den Dateien folgendes stehen:
hosts = 127.0.0.1
wenn ich da jetzt :3306 für den Port hinterschreibe, kommt dieser Fehler, wenn ich postmap -q <email> mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
eingebe:
warning: connect to mysql server 127.0.0.1:3306: Can't connect to MySQL server on '127.0.0.1' (111)

Wieso geht das nicht? MySQL läuft (ich komme bei phpMyAdmin rein). Allerdings wenn ich netstat -an | grep LISTEN eingebe, steht da der Port von MySQL (3306) nicht dabei, der steht nur weiter unten mit LISTENING:/

EDIT:
Die mysql-virtual_*.cf Dateien sind in etwa so aufgebaut (hier ist jetzt die mysql-virtual_mailbox_domains.cf)
user = root
password = <passwort>
dbname = server
table = postfix_mail_domains
select_field = domain
where_field = domain
hosts = 127.0.0.1
 
Last edited by a moderator:
warning: connect to mysql server 127.0.0.1:3306: Can't connect to MySQL server on '127.0.0.1' (111)

Wieso geht das nicht? MySQL läuft (ich komme bei phpMyAdmin rein). Allerdings wenn ich netstat -an | grep LISTEN eingebe, steht da der Port von MySQL (3306) nicht dabei, der steht nur weiter unten mit LISTENING:/

Ich werd aus deiner Aussage über die Ausgabe von netstat nicht schlau. Steht ja jetzt ein Port 3306 bei LISTEN drin oder nicht?
 
So, damit sind ein paar Dinge geklärt. PHP greift über den Socket auf das mysql zu, postfix will es aber über TCP machen; und mysql hört allerdings nur auf dem Socket, nicht auf dem TCP-Port 3306. Am einfachsten konfigurierst du mysql auch noch so, daß es auf localhost:3306 horcht, dann müsste es funktionieren.
 
Dann trag in die my.cnf im Abschnitt [mysqld] einfach eine Zeile
Code:
bind-address 127.0.0.1
ein und starte den mysql neu.
 
Dann geht der Socket aber nimmer, un den Verwendet mysqladmin. Deswegen kommen beim neustarten auch Fehler :/
EDIT: Mit nem = dazwischen gehts. Jetzt mal Postfix testen.
 
Last edited by a moderator:
Back
Top