DarkSoja: Phpmailer Fehler

Hallo!

Ich habe schon ein Thema zum phpmailer erstellt, doch hier noch ein weiterer Fehler, der (meiner Meinung nach) ein neues Thema rechtferigt.

Also, ich habe nun mit phpmailer 5.1 ein Script erstellt, welches eine E-Mail/meherere E-Mails über Googlemail schickt.
Wenn ich das bei mir lokal laufen lassen, klappt das auch wunderbar.

Doch wenn ich das Ganze auf einen Server lade, klappt das nicht mehr und ich bekomm den Fehler:

Mailer Error: SMTP Error: Could not connect to SMTP host
Invalid address: SMTP Error: Could not connect to SMTP host.

Weiß jemand, woran das liegen könnte?
Ich habe ein Tutorial benutzt:
How-to use PHPMailer with GMail

Viele Grüße!

  1. Hallo,

    sagt der Fehler nicht in welcher Zeile. Was sagt Dir der Fehler?

    Mailer Error: SMTP Error: Could not connect to SMTP host

    Keine Möglichkeit mit dem SMTP-Server (Versenden) zu verbinden.

    Invalid address: SMTP Error: Could not connect to SMTP host.

    Ungültige Adresse. Tja, da würde ich doch glatt mal im Code nachschauen.

    Gruß

    jobo

    1. Hallo,

      sagt der Fehler nicht in welcher Zeile. Was sagt Dir der Fehler?

      leider wird die Zeile nicht angegeben...

      Ungültige Adresse. Tja, da würde ich doch glatt mal im Code nachschauen.

      Hab ich ja... Ich habe die Datei einmal lokal bei mir: alles klappt wunderbar.
      Dann hab ich die Datei auf einen anderen Server kopiert: Fehler :(

      Ich verzweifel langsam :(

      Viele Grüße...

  2. Hallo!

    Wenn ich das bei mir lokal laufen lassen, klappt das auch wunderbar.

    Doch wenn ich das Ganze auf einen Server lade, klappt das nicht mehr und ich bekomm den Fehler:

    Mailer Error: SMTP Error: Could not connect to SMTP host

    Naheliegende Ursache: Eine Policy erlaubt es nicht. Hast Du Deinen Provider mal gefragt?

    Hotti

    1. Hallo, danke für die schnelle Antwort.

      Mailer Error: SMTP Error: Could not connect to SMTP host

      Naheliegende Ursache: Eine Policy erlaubt es nicht. Hast Du Deinen Provider mal gefragt?

      Meinst du mit Provider den Server anbieter? Wenn ja: Ich habe vollzugriff auf den Server, php.ini usw. Ist ein Windows Server 2003

      1. hi,

        Meinst du mit Provider den Server anbieter? Wenn ja: Ich habe vollzugriff auf den Server, php.ini usw. Ist ein Windows Server 2003

        Von der Logik her: Dein Script kriegt von einer Maschine aus die Verbindung, von einer anderen Maschine aus nicht. Sofern Du auf die andere Maschine draufkommst, versuche ein

        telnet example.com 25
               ^SMTP Host

        und teile mal das Ergebnis mit.

        Hotti

        1. Sofern Du auf die andere Maschine draufkommst, versuche ein

          telnet example.com 25
                 ^SMTP Host

          Ich komm auf die Maschine drauf. Doch wie genau soll der Befehl aussehen und wo? :P

          Viele Grüße!

          1. hi,

            Ich komm auf die Maschine drauf. Doch wie genau soll der Befehl aussehen und wo? :P

            Habe erstmal nachgelesen:
            Check with your web hosting provider if port 465 (TCP out) is open, if not ask him to open that port

            Du kannst mit dem telnet-Kommando

            telnet example.com 465

            (auf der Kommandozeile ausführen) testen, ob überhaupt eine Verbindung von der betreffenden Maschine aus möglich ist, unabhängig vom PHPScript.

            Hotti

            1. Hallo,

              Habe erstmal nachgelesen:
              Check with your web hosting provider if port 465 (TCP out) is open, if not ask him to open that port

              Das ist ein "Privat"server, also mit dynamischer iP hinter einem Router. Ich habe Port 465 am Router freigegeben.

              Du kannst mit dem telnet-Kommando

              telnet example.com 465

              Hatte ich ausprobiert, doch mein Rechner kennt den Befehl nicht. Der Server schon -> Es konnte keine Verbindung mit dem Host hergestellt werden, auf Port 465

              Klappt also auch nicht.
              Ich habe mal eine test.php mit

                
              $s = fsockopen('smtp.googlemail.com', 465, $n, $e);  
              var_dump($s); var_dump($n); var_dump($e);  
              
              

              reingestellt. Ergebnis bei mir lokal:
              resource(2) of type (stream) int(0) string(0) "" -> Klappt wohl...

              Ergebnis Server:
              Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.googlemail.com:465 (Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht ordnungsgemäß reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. ) in [...]\test.php on line 3

              Fatal error: Maximum execution time of 60 seconds exceeded in [...]\test.php on line 3

              -> Klappt offensichtlich nicht...

              Viele Grüße!

              1. hi,

                Du kannst mit dem telnet-Kommando

                telnet example.com 465

                Hatte ich ausprobiert, doch mein Rechner kennt den Befehl nicht. Der Server schon -> Es konnte keine Verbindung mit dem Host hergestellt werden, auf Port 465

                Der Fehler liegt somit nicht am Script. Btw., Port 25 (SMTP Standard) funktioniert auch (jedenfalls bei mir):

                telnet smtp.googlemail.com 25

                Antwort: 220 mx.google.com ESMTP f20sm4130446bkf.16

                Das Problem liegt in Deinem Netzwerk/Routerkonfiguration. Du müsstest darüber mal ein bischen mehr erzählen, damit evntl. eine Hilfe möglich ist, am Besten einen Netzplan zeigen.

                Hotti

                1. Das Problem liegt in Deinem Netzwerk/Routerkonfiguration. Du müsstest darüber mal ein bischen mehr erzählen, damit evntl. eine Hilfe möglich ist, am Besten einen Netzplan zeigen.

                  Also im TCP/IP Protokoll der LAN-Verbindung sind alle Ports aktiviert.

                  Dann haben wir
                  Server mit Script -> Standardgateway (anderer Server) -> Router mit freigegebenem Port für iP des Servers mit dem Script

                  Viele Grüße!

                  1. hi,

                    Server mit Script -> Standardgateway (anderer Server)

                    Hmm, moment mal, was ist ein Standardgateway?: Stelle dir einen Raum vor, mit Leuten drin (Anton, Berta, Cäsar, Dora, Emil). Jetzt will Berta mit Heinrich reden, aber Heinrich ist nicht im Raum. Aber: Da ist ne Tür! Das ist der Gateway, der Default- oder Standardgateway.

                    Und diese Tür, der Gateway muss erreichbar sein. Also: Mach mal ein ping auf den Gateway, das muss funktionieren. Sonst kommste nicht raus. I.d.R. ist der Gateway in Deinem LAN Dein Router.

                    LAN, Privates Netz, z.b. 192.168.1.0/24. Der Defaultgateway muss eine Adresse im Netz haben und natürlich auch ein Interface (das Türchen nach draußen).

                    Hotti

                    1. Hallo nochmal.

                      Also ich habe meinen Server mit dem PHP Scripten und der lokalen iP 192.168.1.101

                      dann den Standardgateway mit 192.168.1.100 und einen Router mit 192.168.1.1

                      Und auf dem Router ist TCP für 192.168.1.101 freigegeben.
                      Der Ping wird erfolgreich ausgeführt.

                      Viele Grüße und danke für dein Bemühen :)

                      1. Moin,

                        dann den Standardgateway mit 192.168.1.100 und einen Router mit 192.168.1.1

                        wie, hast du zwei Router? Falls es noch Probleme gibt, zeige mal Deinen Netzplan, die Adressbereiche und Netzmasken.

                        Hotti

                        1. Moin,

                          dann den Standardgateway mit 192.168.1.100 und einen Router mit 192.168.1.1

                          wie, hast du zwei Router? Falls es noch Probleme gibt, zeige mal Deinen Netzplan, die Adressbereiche und Netzmasken.

                          Hotti

                          Ich habe mal einen "Plan" erstellt. Der rote Server 2 ist der, auf dem das Script laufen soll und er hat die iP 192.168.1.101.

                          Der grüne ist ein anderer Server, mit Betriebssystem Windows Server 2000 und auf disem klappt das Script! ip: 192.168.1.102

                          Der blaue ist der Standardgateway zwischen Servern und Routern. iP: 192.168.1.100

                          und der Orange-Router hat 192.168.1.1

                          Ich habe das eben mal auf dem Server mit Win 2000 ausprobiert und da läuft es. Kann also nur am Betriebssystem liegen? Oder SSH nicht installiert? Steht aber in der phpinfo.

                          Schaltplan

                          Viele Grüße!

                          1. hi,

                            Schaltplan

                            Ja, gut, jetzt brauchen wir noch die Angabe der Netzmasken und eine Aussage darüber, ob die Router classfull oder classless routen...

                            hotti

                            1. hi,

                              Schaltplan

                              Ja, gut, jetzt brauchen wir noch die Angabe der Netzmasken und eine Aussage darüber, ob die Router classfull oder classless routen...

                              hotti

                              Hallo,
                              also ich habe mir gerade mal angeguckt, wie der 192.168.10.1 eingestellt ist:
                              Da steht eine Option auf "Gateway" und nicht auf "Router"...
                              Ich habe aber leider keinen offiziellen Netzplan, daher ist das oben nur meine Vermutung.

                              Also ich denke es kann NICHT am Server 1 oder am Router liegen, da das Ganze von Server 3 aus ja klappt...

                              Meinst du jetzt die Subnetmasks? Die sind 255.255.255.0

                              Viele Grüße!

                            2. Hello,

                              Schaltplan

                              Ja, gut, jetzt brauchen wir noch die Angabe der Netzmasken und eine Aussage darüber, ob die Router classfull oder classless routen...

                              Ich bräuchte dazu erstmal etwas Klartext. "Server" interpretiere ich erstmal als "Host". Darauf laufen dann irgendwelche Services, die hier nicht näher bezeichnist sind.

                              Die Zeichnung deute ich so, dass Host-1 ("Server 1") drei Netzwerkkarten hat. Dann wäre er doch auch irgendwie Router, oder?

                              Und wo sind die Clients angeschlossen? Hängen die alle auf der anderen Seite des Routers?

                              Liebe Grüße aus dem schönen Oberharz

                              Tom vom Berg

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

                                Die Zeichnung deute ich so, dass Host-1 ("Server 1") drei Netzwerkkarten hat. Dann wäre er doch auch irgendwie Router, oder?

                                Nicht zwingend. Ich habe hier eine Netzwerkkarte liegen, die ist zugleich ein 5-Port-Hub. Die hat aber als 10Mbit-Karte nur musealen Wert.

                                MFFG (Mit freundlich- friedfertigem Grinsen)

                                fastix