In Python v3.13 ist die E-Mail-Zustellung aufgrund einer SSL-Änderung unterbrochenPython

Python-Programme
Guest
 In Python v3.13 ist die E-Mail-Zustellung aufgrund einer SSL-Änderung unterbrochen

Post by Guest »

Ich habe bisher nur einen Online-Bericht darüber gesehen, aber vielleicht sind auch andere darauf gestoßen und haben einen Weg gefunden, es zu umgehen. Die E-Mail-Zustellung mit dem Python-E-Mail-Paket funktionierte in früheren Versionen von Python, schlägt jedoch in Version 3.13 fehl. Das Problem liegt nicht beim E-Mail-Paket, sondern bei SSL.
Es scheint, dass Version 3.13 von Python die Anforderungen für eine der Einstellungen in SSL-Zertifikaten geändert hat. Und wenn für die Zertifikate Ihrer E-Mail-Server diese neue Einstellung nicht festgelegt ist, schlägt die Zustellung Ihrer E-Mails mit einem SSL-Fehler fehl.
In jedem Zertifikat gibt es ein Feld namens „Grundlegende Einschränkungen“, das in ignoriert wurde Frühere Versionen von Python, aber jetzt sucht es nach dem Feld, das auf „Kritisch“ gesetzt ist. Ist dies nicht der Fall, erklärt SSL den Handshake als fehlgeschlagene Überprüfung. Daher wird eine Ausnahme ausgelöst.
Ich habe die Zertifizierung überprüft, die mein E-Mail-Server für SSL verwendet, und dieses Feld ist auf „Falsch“ und nicht auf „Kritisch“ gesetzt. Und da der Hosting-Anbieter nicht in der Lage ist, ein Zertifikat für einzelne Clients zu ändern, wäre es notwendig, eine benutzerdefinierte Zertifizierung zu erwerben und diese auf dem Server zu installieren. Dies ist für jede Domain, die für die E-Mail-Zustellung verwendet wird, kostspielig.
Lassen Sie andere auf dieses Problem stoßen und es umgehen, ohne jetzt aufgrund der Einstellungen ihrer E-Mail-Dienstanbieter eine benutzerdefinierte Zertifizierung erwerben zu müssen eingestellt hat? Eine Möglichkeit, dies zu umgehen, besteht sicherlich darin, die SSL-Überprüfung zu ignorieren, aber das scheint nicht klug zu sein.
Ich bin überrascht, dass es in Python keine neue Einstellung gibt, um die vorherige Zertifizierungsstufe zu akzeptieren v3.12 unterstützt. Wir können jedoch dieselbe Software auf verschiedenen Python-Versionen ausführen und den Fehler in Version 3.13 sehen.

Code: Select all

import ssl
EmailServer = 'SomeDomain.com'
EmailPort = 465
context = ssl.create_default_context()
with smtplib.SMTP_SSL (EmailServer, EmailPort, context=context) as server:
server.login(EmailServerUsername, EmailServerPassword)
server.send_message(msg)
In diesem Codesegment in V3.13.1 wird eine Ausnahme in der Zeile „with smtplib.SMTP_SSL“ ausgelöst und server.login wird nicht erreicht.
Die ausgelöste Ausnahme ist: E-Mail-Ausnahme [SSL: CERTIFICATE_VERIFY_FAILED] Zertifikatsüberprüfung fehlgeschlagen: Grundlegende Einschränkungen des CA-Zertifikats nicht als kritisch markiert (_ssl.c:1018)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post