Ich möchte eine E-Mail direkt von einem Skript an ein Gmail-E-Mail-Konto senden, indem ich mich direkt mit smtp.gmail.com
verbinde.
Ich möchte jedoch das gmail-Passwort im Skript nicht verwenden. Nach dem, was ich gelesen habe, scheint Google Mail eine Authentifizierung zu erfordern, bevor es E-Mails, auch an seine eigenen Benutzer, übermittelt.
Meine Frage ist, wie kommt die E-Mail von einem anderen SMTP-Server überhaupt, da der SMTP-Server keine Gmail-Zugangsdaten hat. Erfordert Gmail nur die Authentifizierung für " anonyme " Absender, und da mein Skript auf einem PC ausgeführt wird, unterliegt es höheren Sicherheitsanforderungen. Hier ist das Python-Skript, das ich ausführe:
%Vor%Wenn ich dieses Skript ausführe, lautet die Ausgabe:
%Vor%Meine Frage ist, wie vermeiden externe SMTP-Server dieses Problem? Und was ist in einem lokalen Skript replizierbar, oder sind korrekte reverse DNS-Einträge, SPF-Einträge usw. erforderlich?
Sie können einige externe SMTP-Server ohne Authentifizierung (oder ein lokales SMTP) verwenden, aber die gesendete Nachricht wird vom Spamfilter von Google abgefangen, da msg ["Von"] @ ist. google.com , während das eigentliche SMTP nicht smtp.gmail.com ist.
Diese SMTP-Server müssen auch die korrekte Reverse-Zone im DNS des Internetdienstanbieters haben und ansonsten wird dieser SMTP-Server von Google blockiert.
Das ist eine wirklich gute Frage, und ich antworte inline.
Ich möchte eine E-Mail direkt von einem Skript an ein Google Mail-Konto senden, indem ich eine direkte Verbindung zu smtp.gmail.com herstelle.
Zunächst ist smpt.gmail.com kein Mailserver, der E-Mails (von anderen Mailservern) akzeptiert, sondern es Benutzern von Gmail erlaubt, sich einzuloggen und somit zu senden oder zu prüfen Email. Wenn wir die Gmail-Mailserver herausfinden möchten, die Mails von anderen Mailservern annehmen. Wir können den folgenden Befehl auf dem Terminal ausführen:
dig mx gmail.com +short
Ausgabe:
%Vor%Da
gmail-smtp-in.l.google.com.
den niedrigsten Wert von 5 hat, verwenden wir es als bevorzugten Mailserver
Ich möchte jedoch das gmail-Passwort im Skript nicht verwenden. Nach dem, was ich gelesen habe, scheint es, dass Gmail Authentifizierung erfordert, bevor es alle E-Mails, auch an die eigenen Benutzer, übermittelt.
Genau einer verwendet smtp.gmail.com , um sich anzumelden und E-Mails an / von ihren jeweiligen Konten zu senden / zu checken. Daher benötigen wir Benutzeranmeldeinformationen. Wir benötigen jedoch keine Anmeldeinformationen zum Senden von E-Mails an den E-Mail-Server, z. B. gmail-smtp-in.l.google.com (Beispiel unten)
Meine Frage ist, wie die E-Mails von einem anderen SMTP-Server stammen, da der SMTP-Server keine Gmail-Anmeldeinformationen enthält. Erfordert Gmail nur die Authentifizierung für "anonyme" Absender, und da mein Skript auf einem PC ausgeführt wird, unterliegt es höheren Sicherheitsanforderungen? Hier ist das Python-Skript, das ich ausführe:
Wie ich oben anhand der obigen Ausführungen ausgeführt habe, benötigen wir keine Gmail-Anmeldeinformationen für die Verbindung mit Gmail-Mail-Servern , wenn wir jedoch über Gmail-Mail-Server persönliche Kontakte herstellen Computer können wir mit dem Senden von ein paar E-Mails wegkommen, aber um mehr E-Mails zu senden, müssen wir Domain Reputation und Verantwortlichkeit mit DKIM, SPF usw. (das ist ein ganz anderes Spektrum) bauen.
Das folgende Python-Skript sendet E-Mails ohne Authentifizierung an ein Google Mail-Konto.
%Vor%Oder versuchen Sie das folgende Telnet-Snippet
%Vor%Sie können Google Mail SMTP-Server nicht ohne Authentifizierung verwenden. Es ist eine Google-Richtlinie. Sie müssen Ihr Kontopasswort eingeben. Aber es gibt einen anderen Weg. Sie können GAE (Google App Engine) mit Google Mail-API verwenden. Auf diese Weise können Sie Nachrichten direkt senden.
Tags und Links python gmail authentication smtp