Was ist ein sicherer Weg, um senden Sie eine E-Mail mit Python und Gmail als provider?
Ich versuche zum senden von E-Mails an mich mit einem Python-Skript, und zum Glück stieß ich auf diesen Beitrag:
So senden Sie eine E-Mail mit Gmail als provider mit Python?
Das Problem ist, smtplib sendet das Passwort für das Skript im Klartext, und ich bin skeptisch über seine Sicherheit. Weiter mein Skript enthält meinen Benutzernamen und mein Passwort im Klartext. Gibt es gute Möglichkeiten, um die Verwendung von Python und E-Mails senden, ohne dass mein Passwort als plain text?
Ich hab das auch schon auf StackOverflow:
Python smtplib Sicherheit
aber die Antwort ist nicht ganz helfen mir, diesen Konflikt aufzulösen. Allerdings bin ich nicht bereit aufzugeben, noch nicht.
Einige weitere Informationen: ich werde versuchen, meinen Raspberry Pi als server, der Kratzer über eine website. Wenn eine bestimmte Sache über die website ändert sich, ich möchte per email benachrichtigt werden. Jedoch möchte ich nicht auf meinen Pi zu sitzen um mit einem script, der meinen Benutzernamen und mein Passwort im Klartext.
- Was ist mit Ihrem Problem nicht gelöst, indem die Informationen auf die "smtplib Sicherheit" Frage, die Sie verlinken? starttls() ist ausdrücklich zu sagen, nicht zu senden, das Passwort im Klartext (obwohl es immer noch das problem des Zertifikats nicht vollständig validiert).
- Danke für die Antwort. Ich denke, ich muss noch tiefer gehen und erfahren, wie E-Mail-Zertifikats-Validierung funktioniert, weil ich bin ganz neu hier. Ich fügte einige weitere Informationen zu der post, die hoffentlich unterscheidet sich von den anderen Fragen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwendet die Verbindung STARTTLS, also nicht über das internet gesendet werden, im Klartext.
Die Funktion
server.starttls()
beginnt die verschlüsselte Kommunikation mit dem server auf port 465 statt des normalen port 25 für unverschlüsselte SMTP-mail-Verkehr.Eine offensichtliche Lösung wäre das verwenden
bekommst du das Passwort beim start ausgeführt wird, und speichern Sie im Speicher.
import getpass
am Anfang der Datei. Dann tun Sie etwas, das wieemail_password = getpass.getpass("Enter Email Password: ")
.Sogar mit
starttls
ich habe gerade blockiert Gmail E-Mails senden von meinem Python-Skript (was in der Vergangenheit funktioniert)... ich bekomme eineSMTPAuthenticationError
mit einem link, um fortzufahren Anmeldung über einen browser, das ist keine Hilfe für mein Python-Skript versucht, um E-mail senden übersmtplib
. Ich habe nicht "2 step verification" - setup auf meinem Konto derzeit.Musste ich mein Google-Konto (im browser) und wählen Sie die option "Zugriff für weniger sichere apps"
https://www.google.com/settings/security
Ändern, dass erlaubt mein Skript wieder arbeiten. Es sieht aus wie Google wirklich will, dass wir die Verwendung von 2-Schritt-Verifizierung, und so ein app-spezifisches Passwort, geht nach vorn. Ich denke, ich werde das tun und setzen mit, die die Eingabe einer SMS-code zum einloggen meine E-Mail jetzt und dann...