Problem beim Mailversand

  • Hi zusammen,


    mir ist gestern noch ein Problem mit dem Mailversand untergekommen. Ich hatte meinen account schon erfolgreich eingebunden und dann kam irgendwann dies hier


    So habe ich meinen Mail Account konfiguriert, bisher auch ohne Probleme


    Python
    [SMTP]
    server = smtp.gmail.com
    port = 587
    use_tls = true
    need_login = true
    username = xxxxxxxxx@googlemail.com
    password = *******
    from = Tuersprechanlage


    Ich habe mal einen Test per cmdline versucht und folgendes erhalten


    Ein Zertifikatsproblem scheinbar. Any ideas?

  • Fehlendes Root- / Zwischenzertifikat?


    Wenn Du TTL nutzt muss der Client dem Server Zertifikat vertrauen. Dazu muss der Kette vollständig vertraut werden (alle Zertifikate lokal installiert sein). Soweit ich weis ist das Root Zertifikat von GeoTrust und sollte somit auf allen System drauf sein. Damit signiert Google eine eigene CA. Dieses Zwischenzertifikat fehlt wahrscheinlich (auf meinem Jessie lite ist keins von Google zu finden). Diese eigene CA stellt dann wiederum das Serverzertifikat aus.

  • Hm, das "erfolgreich" hatte ich überlesen. Vielleicht sind die Warnungen zu den Zertifikaten auch irreführend. Du hast wirklich nichts geändert? Oder irgendwas aktualisiert?


    Könnte auch an etwas anderem liegen. Port 587 erwartet STARTTLS, Port 465 SSL/TLS. SSL/TLS geht (laut google) auch auf Port 25. Versuche doch mal Port 25.


    Andererseits nutzt Python an der Stelle STARTTLS. Kann man da noch besser loggen? Am besten wäre der ganze SMTP Handshake in Klartext!



    routines:SSL23_GET_SERVER_HELLO:unknown protocol


    openssl kannst Du hier vermutlich nicht nehmen, das sendet nicht die benötigten Kommandos für SMTP

  • Also, openssl geht schon, nur mit etwas anderer Formatierung:


    openssl s_client -host smtp.gmail.com -port 25 -starttls smtp


    Das sieht grundsätzlich mal gut aus, bei mir.


  • bei mir so. Ich erkenne keinen Unterschied ?!?

  • Ähm.. ich mag auf dem Schlauch stehen, aber wenn ich mir die mail.py anschaue, dann sind dort fixe Werte eingetragen. Demzufolge kann ich in der Ini ändern was ich will.


    https://github.com/motom001/Do…n/SingleActions/mailto.py


  • Korrektur:




    depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
    verify error:num=20:unable to get local issuer certificate
    verify return:0
    ---
    Certificate chain
    0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
    i:/C=US/O=Google Inc/CN=Google Internet Authority G2
    1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
    i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
    2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
    i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority


    ist tatsächlich ein Fehler. Das zeigt auf das GeoTrust Global CA


    Das ist aber vorhanden und augenscheinlich gültig....

    Bis Ende September beruflich und privat abwesend. Ab Oktober geht es mit DoorPi weiter :)

    Einmal editiert, zuletzt von AndyGR42 ()

  • OK....


    openssl s_client -host smtp.gmail.com -port 25 -starttls smtp -CApath /etc/ssl/certs/


    eliminiert den Fehler


    verify error:num=20:unable to get local issuer certificate


    Jetzt bleibt zu prüfen wie sich Python verhält.



    in der mailto.py stehen doch nur die default werte welche genommen werden, wenn die Option nicht angegeben ist, oder?


    Setz in der doorpi.ini doch mal bitte use_ssl = false



    Diese Option ist in deiner config nicht gesetzt und könnte, wenn es von Python genutzt wird, genau das Problem verursachen. Gmail erwartet auf dem port 587 TLS!

  • So, ich denke das Thema ist gelöst. Ich weiß nicht ob die Werte nur als default gesetzt werden, wenn nichts anderes konfiguriert wurde. @motom001, wie verhält sich das?


    Ich habe jedenfalls nun mal von Hand alle Standardwerte entfernt und siehe da, die Mail geht wieder raus.



    Aber deinen "SSL Patch" habe ich dennoch gerade übernommen. Du scheinst das nicht das erste Mal zu machen :) Also schon mal einen Riesen Dank an dich.


    Gibt es noch mehr Leute die betroffen sind?

  • Vielleicht noch mal kurz was zum Thema SSL/TLS vs STARTTLS


    Historisch ist SMTP nicht als Client Verbindung gedacht, sondern als Server-Server Kommunikation. Ports erwarten entweder keine Verschlüsselung (25) oder SSL/TLS (465). Der Port 578 wurde speziell für Clients eingeführt, damit diese den Servern nicht in die Quere kommen. Auf 578 ist es üblich, eine unverschlüsselte Verbindung zu erwarten, die mit dem Kommando STARTTLS verschlüsselt werden kann. Diese Ports lassen dann oft kein SSL/TLS bei der ersten Verbindung zu. Der Server bietet STARTTLS in seine Antwort auf EHLO an. Der Client kann dann entscheiden, ob er unverschlüsselt weiter macht oder verschlüsselt. Bietet der Server das nicht an, so bricht der Client ab, wenn STARTTLS konfiguriert wurde.

  • Das entfernen der Standardwerte setzt use_ssl auch auf false. Würde es Dir etwas ausmachen die mailto.py noch mal in den ursprünglichen Zustand zu setzen und in der doorpi.cfg use_ssl=false zu testen? Das sollte den gleichen Effekt haben.

  • Du scheinst das nicht das erste Mal zu machen :) Also schon mal einen Riesen Dank an dich.


    Gibt es noch mehr Leute die betroffen sind?

    Naja, über 15 Jahre Erfahrung mit Mail Servern und 9 Jahre mit SIP/UC hinterlassen zwangläufig Spuren. Auch wenn es immer Windows Systeme waren / sind, so sind die Probleme stets ähnlich.


    Ich hatte auch keine Mail rausbekommen, das aber nicht weiter verfolgt da ich Telegram für wesentlich besser halte. Ich bekomme schon genug Mails... :(