[Gelöst] Python3 smtplib mit TLS

  • Ich habe mir ein kleines Programm gebastelt, welches mir eine Email schickt, bekomme aber immer die Meldung:

    Code
    Erfolg
    Fehler

    Das Programm:

    Ist das mein Fehler mit dem except: oder ist da wirklich ein Fehler ? :helpnew:

    EDIT: Die Email kommt aber an.

  • Morgen fred0815 ,

    versuch folgendes:

    Edit:

    Das server.quit() kannst du beim with eigentlich weg lassen da es die Verbindung selbst beendet.

  • Hallo,

    ein Hinweis für dein nächstes Programm. Exceptions benutzt man ja, weil man erwartet das ein Fehler auftritt. Du erwartetst den Fehler aber nicht in der 'main' Funktion, sondern in der 'sende_email'. Dann gehört der 'try/except'-Aufruf auch da rein.

    Wenn du nur 'except' aufrufst, dann ist es total egal was für ein Fehler im Programm auftritt, das 'except' schluckt den und das Programm macht das, was du sagt. Dein Code ist ein gutes Beispiel dafür, wie einem dass die Fehlersuche erschweren kann und eigentlich Nachteile anstatt Vorteile bringen kann.

    Also 'try/except' da aufrufen wo der Fehler erwartet wird und dann überlegt man sich welche Fehler auftreten können und fängt nur diese ab.

    Eine allgemeine Auswahl dafür bekommst du hier.

    Viele Bibiotheken bieten auch Exceptions an:

    https://docs.python.org/3/library/smtp…b.SMTPException

    Dann könnte das so aussehen:

    Das sind jetzt einfach mal Ausnahmen aus der Doku, nur um zu zeigen wie ich das gemeint habe und um zu zeigen, das man auch mit 'else' arbeiten kann. Wenn 'try' erfolgreich war, dann folgt 'else'. Wenn 'try' nicht geklappt hat, dann folgt die Ausnahme und 'else' wird nicht abgearbietet.

    Übrigens du hattest zweimal server.elo in deinem Code stehen.

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Dennis89

    Da meinst du es aber gut mit den try's.

    Das könnte man doch auch zusammenfassen:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!