Jan K.: Mercury Mailserver / Failed to connect to mailserver at "localho

Hallo zusammen

Ich miete seit längerem einen VPS (Virtual-Private-Server, Win2003 R2) bei HOST-Europe, um darauf meine Spielereien laufen zu lassen.

Nun möchte ich gerne (mal wieder) E-Mails via PHP Script, bzw. der PHP-Funktion mail(), verschicken und erhalte folgende Warnung:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\xxxxxx\yyyyyy\index.php  on line 9

Mercury läuft (auf Port 25/110) und die Ports 25 für SMTP und 110 für POP3 sind in der Firewall freigegeben.

Also war mein nächster Gedanke, das eventuell eine andere Anwendung die Ports für sich in Anspruch nimmt. An dieser Stelle könnte ich eure Hilfe für die Deutung dieser netstat -a Rückgabewerte gebrauchen.

Screenshot A - Mercury deaktiviert:

Screenshot B - Mercury aktiviert:

Kann man daraus einen möglichen Konflikt erkennen? Was ich nur festgestellt habe ist, das auf dem Screenshot B der Port für IMAP zu sehen ist wenn Mercury läuft. Kann man die Screenshots so deuten, das auf 25 und 110 offensichtlich nichts passiert!?

Eine Möglichkeit puncto Konflikt hat mich noch auf die Idee gebracht ein paar Windows-Services zu deaktivieren die sich für mich problematisch angehört haben - z.B. den Microsoft POP3 Service. Aber das lieferte auch keinen Erfolg.

Gibt es u.U. bei Windows 2003 R2 irgendwelche Software/Dienste die sich mit Mercury beißen?

Der Apache, MySQL und Filezilla (aus dem XAMPP Paket) laufen jedenfalls beschwerdefrei.

Ich bin mit meinem Latein jedenfalls am Ende, habt ihr irgendwelche Ideen?

Gruß,
Jan

  1. Hallo,

    Nun möchte ich gerne (mal wieder) E-Mails via PHP Script, bzw. der PHP-Funktion mail(), verschicken und erhalte folgende Warnung:
    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\xxxxxx\yyyyyy\index.php  on line 9

    also läuft auf der Maschine kein SMTP-Server.

    Mercury läuft (auf Port 25/110)

    Wirklich? Hast du tatsächlich das SMTP-Server-Modul in Mercury aktiviert?

    und die Ports 25 für SMTP und 110 für POP3 sind in der Firewall freigegeben.

    Ich bin mir nicht sicher, ob das wirklich nötig ist, da die Firewall ja üblicherweise nur Verbindungen von draußen abblockt. Eventuell hast du auf diese Weise die Möglichkeit geschaffen, dass Clients von außerhalb sich mit deinem SMTP- oder POP3-Server verbinden können (sobald er denn läuft).

    Screenshot A - Mercury deaktiviert:
    http://12monkeys.dyndns.org/media/netstat_001.jpg

    Keine Spur von SMTP.

    Screenshot B - Mercury aktiviert:
    http://12monkeys.dyndns.org/media/netstat_002.jpg

    Keine Spur von SMTP.

    Kann man daraus einen möglichen Konflikt erkennen?

    Nein. Nur dass auf Port 25 (SMTP) niemand horcht.

    Was ich nur festgestellt habe ist, das auf dem Screenshot B der Port für IMAP zu sehen ist wenn Mercury läuft. Kann man die Screenshots so deuten, das auf 25 und 110 offensichtlich nichts passiert!?

    Richtig. Anscheinend ist in Mercury nur der IMAP-Server als Modul aktiviert, weiter nichts.

    So long,
     Martin

    --
    Der Bäcker schlägt die Fliegen tot
    Und macht daraus Rosinenbrot.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hallo nochmal,

      ich kan jetzt immerhin teilweise E-Mails mit dem einfachen Formmailer (http://aktuell.de.selfhtml.org/artikel/php/form-mail/) über den in Windows eingebauten SMTP-Server verschicken.
      Jedoch habe ich ein Problem mit dem Senden von E-Mails an GMX-Adressen, mein HELO wird (aus mir unbekannten Gründen) verweigert:

      2010-07-10 10:12:01 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 HELO - +CT20496 250 0 31 12 0 SMTP - - - -
      2010-07-10 10:12:01 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 MAIL - +FROM:automailer@mydomain.com 250 0 44 31 0 SMTP - - - -
      2010-07-10 10:12:01 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 RCPT - +TO:mailaccount@gmx.de 250 0 32 29 0 SMTP - - - -
      2010-07-10 10:12:01 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 DATA - CT204968yfogkJXrRjb0000000b@CT20496 250 0 120 225 0 SMTP - - - -
      2010-07-10 10:12:01 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 QUIT - CT20496 240 0 56 4 0 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 220+mx0.gmx.net+GMX+Mailservices+ESMTP+{mx028} 0 0 46 0 391 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 EHLO - CT20496 0 0 4 0 391 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 250-mx0.gmx.net+GMX+Mailservices 0 0 32 0 406 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 MAIL - FROM:automailer@mydomain.com 0 0 4 0 406 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 250+2.1.0+ok+{mx028} 0 0 20 0 406 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 RCPT - TO:mailaccount@gmx.de 0 0 4 0 406 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 550-5.7.1+{mx028}+Sorry,+your+helo+has+been+denied. 0 0 51 0 500 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 RSET - - 0 0 4 0 500 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 250+2.0.0+Flushed+{mx028} 0 0 25 0 516 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 QUIT - - 0 0 4 0 516 SMTP - - - -
      2010-07-10 10:12:01 213.165.64.100 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 221+2.0.0+GMX+Mailservices+{mx028} 0 0 34 0 516 SMTP - - - -

      Hier noch ein funktionierendes Beispiel an eine freenet Adresse:

      2010-07-10 10:15:29 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 HELO - +CT20496 250 0 31 12 0 SMTP - - - -
      2010-07-10 10:15:29 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 MAIL - +FROM:automailer@mydomain.com 250 0 44 31 0 SMTP - - - -
      2010-07-10 10:15:29 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 RCPT - +TO:peterkanone@freenet.de 250 0 35 32 0 SMTP - - - -
      2010-07-10 10:15:29 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 DATA - CT20496aJswFCHOzyfy0000000c@CT20496 250 0 120 179 16 SMTP - - - -
      2010-07-10 10:15:29 127.0.0.1 CT20496 SMTPSVC1 CT20496 127.0.0.1 0 QUIT - CT20496 240 16 56 4 0 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 220+8.mx.freenet.de+ESMTP+Exim+4.72+Sat,+10+Jul+2010+12:15:29++0200 0 0 67 0 47 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 EHLO - CT20496 0 0 4 0 47 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 250-8.mx.freenet.de+Hello+wvps83-169-13-137.dedicated.hosteurope.de+[83.169.13.137] 0 0 83 0 63 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 MAIL - FROM:automailer@mydomain.com+SIZE=468 0 0 4 0 63 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 250+OK 0 0 6 0 63 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 RCPT - TO:peterkanone@freenet.de 0 0 4 0 63 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 250+Accepted 0 0 12 0 156 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 DATA - - 0 0 4 0 156 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 354+Enter+message,+ending+with+"."+on+a+line+by+itself 0 0 54 0 156 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 250+OK+id=1OXX5l-00054N-GV 0 0 26 0 297 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionCommand SMTPSVC1 CT20496 - 25 QUIT - - 0 0 4 0 297 SMTP - - - -
      2010-07-10 10:15:29 195.4.92.211 OutboundConnectionResponse SMTPSVC1 CT20496 - 25 - - 221+8.mx.freenet.de+closing+connection 0 0 38 0 328 SMTP - - - -

      Hat jemand eine Ahnung wieso GMX mich ausschließt?

      Gruß,
      Jan

      1. Hi,

        ich kan jetzt immerhin teilweise E-Mails mit dem einfachen Formmailer (http://aktuell.de.selfhtml.org/artikel/php/form-mail/) über den in Windows eingebauten SMTP-Server verschicken.

        und der versucht anscheinend, die Nachricht direkt an den Empfänger zuzustellen.

        Jedoch habe ich ein Problem mit dem Senden von E-Mails an GMX-Adressen, mein HELO wird (aus mir unbekannten Gründen) verweigert:

        Das kann hier mehrere Gründe haben, die wir aus dem Protokoll nicht erschließen können.

        Erstens sieht es so aus, als ob dein Server im HELO- oder EHLO-Kommando sich nicht identifiziert. Normalerweise sollte das Kommando "EHLO <eigener Hostname>" sein. Möglich, dass GMX schon wegen so eines Formfehlers den Dialog verweigert.
        Zweitens ist es möglich, dass dein Windows-Server an einem DSL-Anschluss mit wechselnder IP-Adresse sitzt. Von solchen dynamischen IP-Adressen nehmen die wenigsten MTAs einfach so Mails an; meistens nur von ihren eigenen Kunden, die sich per SMTP-AUTH mit Benutzername und Kennwort identifizieren.
        Schließlich könnte es noch sein, dass die Absender-Mailadresse und IP-Adresse oder Hostname deines Windows-Servers nicht zusammenpassen.

        Um all diese Probleme zu vermeiden, wäre Mercury als SMTP-Relay ja genau der richtige Weg gewesen: Mercury nimmt als SMTP-Server von PHP die zu versendende Mailnachricht entgegen, meldet sich dann als SMTP-Client mit SMTP-AUTH und deinen eigenen Benutzerdaten beim Mailserver deines Providers an, zu dem die Absenderadresse gehört, und reicht die Nachricht weiter.
        Dadurch, dass du Mercury aus der Gleichung genommen hast, wird's jetzt kompliziert. Ich kenne mich mit dem Windows-eigenen SMTP-Server auch leider nicht gut genug aus, so dass ich dir nicht sagen kann, ob man den auch einfach als Smarthost konfigurieren kann.

        So long,
         Martin

        --
        Lieber Blödeleien als blöde Laien.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Moin!

          Hi,

          ich kan jetzt immerhin teilweise E-Mails mit dem einfachen Formmailer (http://aktuell.de.selfhtml.org/artikel/php/form-mail/) über den in Windows eingebauten SMTP-Server verschicken.

          und der versucht anscheinend, die Nachricht direkt an den Empfänger zuzustellen.

          Genau und dann schaut der SMTP-Server in einer Sammlung von bekannten Netzwerkbereichen mit dynamisch vergebenen IP-Adressen (Kundenzugänge von Zugangsprovidern) nach und weist die Annahme von Mails zurück.

          In Microsoft Windows-PHP-Installation musst Du zwei Stellen in der php.ini setzen:

          SMTP = [Adresse des SMTP Deines INTERNET-ZUGANGSPROVIDERS, über den Du hoffentlich OHNE AUTHENTIFIKATION senden kannst]
          smtp_port = 25

          welche php.ini aktiv und also anzupassen ist siehst Du mit <?php phpinfo();?> welches Du im korrekten Kontext ausführen musst: via Webserver oder seltener CLI  (in einer Konsole). Ja, das können verschiedene sein.

          Beachte bitte, dass Änderungen in der php.ini ggf. (php als Modul) auch einen Neustart des Apache erfordern.

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix

        2. Erstens sieht es so aus, als ob dein Server im HELO- oder EHLO-Kommando sich nicht identifiziert. Normalerweise sollte das Kommando "EHLO <eigener Hostname>" sein. Möglich, dass GMX schon wegen so eines Formfehlers den Dialog verweigert.

          Vielen lieben Dank, das wars! Hurra!