PHP E-Mail versandt schlägt fehl

  • Servus,


    seit ein paar Tagen beschäftigt mich ein Problem und ich kann ihn bislang noch immer nicht lösen.
    Wenn ich eine Socket-Verbindung herstellen möchte mittels TLS, haut mir PHP (7.2-fpm, 5.6-fpm, 7.0-fpm) die folgende Fehlermeldung heraus:
    Wenn ich allerdings eine E-Mail über dem root versende (telnet) funktioniert alles.
    Es scheint so, als würde PHP versuchen, sich via SSL zu verbinden anstatt mit TLS.


    Hat dort vielleicht einer nähere Informationen, wie man dieses Problem umgehen kann ?
    Google haut hier leider nichts informatives heraus.



    - LuXorioN



    PHP
    <?php
    ini_set("display_errors", true);
    ini_set("display_startup_errors", true);
    error_reporting(E_ALL);
    $socket = fsockopen("tls://localhost", 587, $errorCode, $errorMessage);
    ?>



    Code
    Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol in /htdocs/test.php on line 7
    Warning: fsockopen(): Failed to enable crypto in /htdocs/test.php on line 7
    Warning: fsockopen(): unable to connect to tls://localhost:587 (Unknown error) in /htdocs/test.php on line 7


    Informationen zum Betriebssystem:


    Linux version 4.15.0-10-generic ([email protected]) (gcc version 7.3.0 (Ubuntu 7.3.0-3ubuntu1)) #11-Ubuntu SMP Tue


    Feb 13 18:23:35 UTC 2018
    Distributor ID: Ubuntu
    Description: Ubuntu Bionic Beaver (development branch)
    Release: 18.04
    Codename: bionic

  • Wie der Fehler sagt, scheint es sich um ein SSL-Fehler zu handeln. Schätze mal irgendein Protokoll wird nicht unterstützt. Also an PHP liegt es wohl nicht.
    Darf ich fragen, warum du für den Mailversand kein PHP Framework wie z.b. PhpMailer verwendest? Das könnte man ganz einfach per Composer installieren und quasi mit

    PHP
    $mail = new PHPMailer;
    $mail->setFrom('[email protected]', 'Your Name');
    $mail->addAddress('[email protected]', 'My Friend');
    $mail->Subject = 'First PHPMailer Message';
    $mail->Body = 'Hi! This is my first e-mail sent through PHPMailer.';
    $mail->send();

    eine Mail versenden, ohne irgendwelche Sockets manuell zu öffnen.
    Edit: TLS ist SSL, jeder Mailversand läuft eigentlich über SSL.

    Mit freundlichen Grüßen

  • Hey, IPS (Invision Power Board) läuft über eine eigene SMTP Klasse weshalb ich dies so realisieren muss.
    Der obige Code "Schnipsel" dient nur als Debug um der Sache auf dem Grund zu gehen.


    Als Stream Sockets stehen folgende Protokolle zur Auswahl (falls es hilft): tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2


    //EDIT: Hat sich erledigt. Anstatt via TLS bin ich direkt via TCP drauf und hab den Befehl "STARTTLS" ausgeführt.


    Danke trotzdem für die Hilfe ^^


    - LuXorioN

    2 Mal editiert, zuletzt von LuXorioN ()

  • Ich markiere jz jemanden der sich richtig gut damit auskennt


    @[VnX]Bonus @Bonus

    Und Ihr wundert euch, dass die User hier in diesem Forum so dumm sind ? Wenn selbst die Administration nicht einmal lesen kann, was im vorherigem Beitrag geschrieben worden ist UND TROTZDEM einen unnötigen Kommentar abgeben muss ?


    Tolle Leistung mta-sa.org Team, tolle Leistung!

    Einmal editiert, zuletzt von LuXorioN ()

  • Und Ihr wundert euch, dass die User hier in diesem Forum so dumm sind ? Wenn selbst die Administration nicht einmal lesen kann, was im vorherigem Beitrag geschrieben worden ist UND TROTZDEM einen unnötigen Kommentar abgeben muss ?
    Tolle Leistung mta-sa.org Team, tolle Leistung!

    Das ist ein Fake Audifire :D
    Und ich hab leider keine Ahnung von PHP.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!