DarkSoja: lokaler Mailserver / Email senden

Hallo!

Ich habe ein PHP-Script auf einem lokalen Server (dyn. iP), welches eine E-Mail versenden soll.
Ich habe einen lokalen Mailserver eingerichtet, der für die interne Nutzung funktioniert, jedoch keine Mails nach außen sendet (zumindes kommt nichts an).

Ich würde auch über einen externen Mailserver wie Googlemail oder GMX senden, wenn das geht.
Ich habe "phpmailer" ausprobiert, jedoch ohne Erfolg (sehr viele Fehler...)

Gibt es eine Möglichkeit, OHNE WEBSPACE MIT MAILSERVER eine Mail zu verschicken?
Viele Grüße!

  1. Hi,

    Ich habe ein PHP-Script auf einem lokalen Server (dyn. iP), welches eine E-Mail versenden soll.
    Ich habe einen lokalen Mailserver eingerichtet, der für die interne Nutzung funktioniert, jedoch keine Mails nach außen sendet (zumindes kommt nichts an).

    versucht er es denn wenigstens? - Nicht dass er große Chancen hätte, denn die meisten Mailserver im öffentlichen Netz nehmen von Dialup-IPs keine Mails an. Aber du solltest immerhin wissen, was in deinem Netz läuft und was nicht.

    Ich würde auch über einen externen Mailserver wie Googlemail oder GMX senden, wenn das geht.

    Wirst du wohl müssen. Nur: Die PHP-Funktion mail() ist dann nicht ausreichend, denn alle mir bekannten Mail-Provider verlangen inzwischen SMTP-AUTH, also SMTP mit Login. Das kann mail() aber nicht. Du brauchst also eine PHP-Bibliothek oder Klasse, die das beherrscht. Dann ist der Rest ein Kinderspiel; du brauchst dann nur noch den SMTP-Servernamen und die Zugangsdaten (Benutzernamen und Kennwort).

    Ich habe "phpmailer" ausprobiert, jedoch ohne Erfolg (sehr viele Fehler...)

    Na, verrate uns bloß nicht, was für Fehler das waren! ;-)

    So long,
     Martin

    --
    Um die Wahrheit zu erfahren, muss man den Menschen widersprechen.
      (George Bernhard Shaw)
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hello,

      versucht er es denn wenigstens? - Nicht dass er große Chancen hätte, denn die meisten Mailserver im öffentlichen Netz nehmen von Dialup-IPs keine Mails an.

      Das ist nicht ganz so. Wenn der OP über einen MX-Eintrag bei Dyn-DNS verfügt, hat er noch relativ gute Chancen, erhört zu werden.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hallo!

        versucht er es denn wenigstens? - Nicht dass er große Chancen hätte, denn die meisten Mailserver im öffentlichen Netz nehmen von Dialup-IPs keine Mails an.

        Das ist nicht ganz so. Wenn der OP über einen MX-Eintrag bei Dyn-DNS verfügt, hat er noch relativ gute Chancen, erhört zu werden.

        Ich habe keinen Eintrag bei DynDNS. Und ich glaube auch, dass bei den E-Mail-Providern die iP ankommt...

        Viele Grüße!

        1. Hello,

          versucht er es denn wenigstens? - Nicht dass er große Chancen hätte, denn die meisten Mailserver im öffentlichen Netz nehmen von Dialup-IPs keine Mails an.

          Das ist nicht ganz so. Wenn der OP über einen MX-Eintrag bei Dyn-DNS verfügt, hat er noch relativ gute Chancen, erhört zu werden.

          Ich habe keinen Eintrag bei DynDNS. Und ich glaube auch, dass bei den E-Mail-Providern die iP ankommt...

          Das soll wohl so sein!
          Und dann sollte Deine eMail eine Absender-Kennzeichnung haben.

          Viel wichtiger aber ist, dass sich dein SMTP-Server mit einem Hostnamen meldet. Und wenn dieser dann im DNS nicht auf die IP zeigt, von der der Request kommt, dann wird die Verbindung zwischen den beiden SMTP-Servern gleich abgelehnt. Das muss nicht so eingestellt sein, ist aber heute eigentlich Standard.

          Wenn Du also DYN-DNS benutzt und dann dort zusätzlich noch einen MX-Eintrag hinterlässt, der auch zum Hostnamen des SMTP-Servers passt, dann ist die Wahrscheinlichkeit gar nicht mehr so klein, dass deine Mailverbindung auch zustande kommt.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Hallo!

            Wenn Du also DYN-DNS benutzt und dann dort zusätzlich noch einen MX-Eintrag hinterlässt, der auch zum Hostnamen des SMTP-Servers passt, dann ist die Wahrscheinlichkeit gar nicht mehr so klein, dass deine Mailverbindung auch zustande kommt.

            Danke für die Antwort!
            Mir wäre aber die Nutzung eines externen Mailservers fast lieber...
            Ich werde mich noch ein bisschen durchgooglen. Wenn jemand noch etwas über die Fehlermeldungen weiß, bitte ich um Antwort!

            Viele Grüße!

    2. Danke für die schnelle Antwort!

      Na, verrate uns bloß nicht, was für Fehler das waren! ;-)

      Hier mein Code (natürlich hab ich bei mir die richtigen Daten eingetragen):

        
        
      $mail = new phpmailer();  
        
      						  
      $mail->IsSMTP(); // per SMTP verschicken  
      $mail->Host = "smtp.googlemail.com"; // SMTP-Server  
      $mail->SMTPAuth = true; // SMTP mit Authentifizierung benutzen  
      $mail->Username = "Ich@googlemail.com"; // SMTP-Benutzername  
      $mail->Password = "XXXX"; // SMTP-Passwort  
      $mail->From = "Ich@googlemail.com";  
      $mail->FromName = "Ich";  
      $mail->AddAddress("Du@googlemail.com");  
      $mail->WordWrap = 50; // Zeilenumbruch einstellen  
      $mail->IsHTML(true); // als HTML-E-Mail senden  
      $mail->Subject = "Test ";  
      $mail->Body = "<b>Test</b>";  
      if(!$mail->Send())  
      	{  
      		echo "Die Nachricht konnte nicht versandt werden <p>";  
      		echo "Mailer Error: " . $mail->ErrorInfo;  
      	}  
      else  
      	{  
      		echo "Nachricht gesendet...";  
      }  
        
      
      

      Und hier die Fehler:

      SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "220 mx.google.com ESMTP 5sm647943fak.47 " SMTP -> get_lines(): $data is "220 mx.google.com ESMTP 5sm647943fak.47 " SMTP -> FROM SERVER: 220 mx.google.com ESMTP 5sm647943fak.47 SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "250 mx.google.com at your service " SMTP -> get_lines(): $data is "250 mx.google.com at your service " SMTP -> FROM SERVER: 250 mx.google.com at your service SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 " SMTP -> get_lines(): $data is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 " SMTP -> FROM SERVER: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 SMTP -> ERROR: MAIL not accepted from server: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 " SMTP -> get_lines(): $data is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 " SMTP -> FROM SERVER: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 SMTP -> ERROR: RCPT not accepted from server: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 " SMTP -> get_lines(): $data is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 " SMTP -> FROM SERVER: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 SMTP -> ERROR: DATA command not accepted from server: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "221 2.0.0 closing connection 5sm647943fak.47 " SMTP -> get_lines(): $data is "221 2.0.0 closing connection 5sm647943fak.47 " SMTP -> FROM SERVER: 221 2.0.0 closing connection 5sm647943fak.47 Die Nachricht konnte nicht versandt werden

      Mailer Error:

      1. Hello,

        Danke für die schnelle Antwort!

        Na, verrate uns bloß nicht, was für Fehler das waren! ;-)

        Hier mein Code (natürlich hab ich bei mir die richtigen Daten eingetragen):

        $mail = new phpmailer();

        $mail->IsSMTP(); // per SMTP verschicken
        $mail->Host = "smtp.googlemail.com"; // SMTP-Server
        $mail->SMTPAuth = true; // SMTP mit Authentifizierung benutzen
        $mail->Username = "Ich@googlemail.com"; // SMTP-Benutzername
        $mail->Password = "XXXX"; // SMTP-Passwort
        $mail->From = "Ich@googlemail.com";
        $mail->FromName = "Ich";
        $mail->AddAddress("Du@googlemail.com");
        $mail->WordWrap = 50; // Zeilenumbruch einstellen
        $mail->IsHTML(true); // als HTML-E-Mail senden
        $mail->Subject = "Test ";
        $mail->Body = "<b>Test</b>";
        if(!$mail->Send())
        {
        echo "Die Nachricht konnte nicht versandt werden <p>";
        echo "Mailer Error: " . $mail->ErrorInfo;
        }
        else
        {
        echo "Nachricht gesendet...";
        }

        
        >   
        > Und hier die Fehler:  
        >   
        >   
        
        SMTP -> get\_lines(): $data was ""  
        SMTP -> get\_lines(): $str is "220 mx.google.com ESMTP 5sm647943fak.47 "  
        SMTP -> get\_lines(): $data is "220 mx.google.com ESMTP 5sm647943fak.47 "  
        SMTP -> FROM SERVER: 220 mx.google.com ESMTP 5sm647943fak.47  
        SMTP -> get\_lines(): $data was "" SMTP -> get\_lines(): $str is "250 mx.google.com at your service " SMTP -> get\_lines(): $data is "250 mx.google.com at your service "  
        SMTP -> FROM SERVER: 250 mx.google.com at your service  
        SMTP -> get\_lines(): $data was ""  
        SMTP -> get\_lines(): $str is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 "  
        SMTP -> get\_lines(): $data is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 " SMTP -> FROM SERVER: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47  
        SMTP -> ERROR: MAIL not accepted from server: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47  
        SMTP -> get\_lines(): $data was ""  
        SMTP -> get\_lines(): $str is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 "  
        SMTP -> get\_lines(): $data is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 " SMTP -> FROM SERVER: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47  
        SMTP -> ERROR: RCPT not accepted from server: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47  
        SMTP -> get\_lines(): $data was ""  
        SMTP -> get\_lines(): $str is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 "  
        SMTP -> get\_lines(): $data is "530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47 " SMTP -> FROM SERVER: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47  
        SMTP -> ERROR: DATA command not accepted from server: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47  
        SMTP -> get\_lines(): $data was ""  
        SMTP -> get\_lines(): $str is "221 2.0.0 closing connection 5sm647943fak.47 "  
        SMTP -> get\_lines(): $data is "221 2.0.0 closing connection 5sm647943fak.47 "  
        SMTP -> FROM SERVER: 221 2.0.0 closing connection 5sm647943fak.47 Die Nachricht konnte nicht versandt werden  
        
        >   
        > Mailer Error:  
          
        Du solltest Dir gar nicht erst angewöhnen, uns hier unformatiertes Gewusel zu posten. Es hat bestimmt kaum einer Lust dazu, sich erst selber durchwurschteln zu müssen, wenn Du das mit einer kontextgerchten Ausgabe der Fehlermeldungen hättest erledigen können.  
          
        <http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel>  
          
          
        DATA command not accepted from server: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47  
          
        Wie man aus der Fehlermeldung erkennen kann, erfordert der Server, den Du ansprichst, eine Verschlüsselung per SSL/TLS. Dem Wunsche solltest Du nachkommen, wenn Du erhört werden willst.  
          
          
          
          
          
        Liebe Grüße aus dem schönen Oberharz  
          
          
        Tom vom Berg  
        ![](http://selfhtml.bitworks.de/Virencheck.gif)  
          
        
        -- 
         ☻\_  
        /▌  
        / \ Nur selber lernen macht schlau  
        <http://bergpost.annerschbarrich.de>
        
        1. Du solltest Dir gar nicht erst angewöhnen, uns hier unformatiertes Gewusel zu posten. Es hat bestimmt kaum einer Lust dazu, sich erst selber durchwurschteln zu müssen, wenn Du das mit einer kontextgerchten Ausgabe der Fehlermeldungen hättest erledigen können.

          http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

          DATA command not accepted from server: 530 5.7.0 Must issue a STARTTLS command first. 5sm647943fak.47

          Wie man aus der Fehlermeldung erkennen kann, erfordert der Server, den Du ansprichst, eine Verschlüsselung per SSL/TLS. Dem Wunsche solltest Du nachkommen, wenn Du erhört werden willst.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          Vielen Dank für deine Antwort Tom!
          Ich habe also dem Server ein ssl:// vorangesetzt:

          $mail->Host = "ssl://smtp.googlemail.com"; // SMTP-Server

          Soweit ist dieses "uniformative Gewusel" auch erstmal wieder weg :)

          Als weitere 3 Fehler bekomme ich diese:

          Warning: fsockopen() [function.fsockopen]: SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol in [...]\phpmailer\smtp.inc.php on line 89
          -> Ich habe mehrere Beiträge in anderen Foren gelesen, leider aber ohne Lösung.

          Warning: fsockopen() [function.fsockopen]: Failed to enable crypto in [...]\phpmailer\smtp.inc.php on line 89
          -> Folgefehler ?!

          Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.googlemail.com:25 (Unknown error) in [...]\phpmailer\smtp.inc.php on line 89 -> Ich habs auch mit Port 465 versucht, der bei Googlemail angegeben ist. Dann kommt wieder das "uninformative Gewusel" (genau das Gleiche).

          Und letztendlich die Ausgabe

          "SMTP -> ERROR: Failed to connect to server: (0)
          Mailer Error
          Description:
          SMTP Error: could not connect to SMTP host server(s)"

          Fehlt also das SSL Protokoll?
          Viele Grüße!