3 Stimmen

Wie kann der Absender einer eingehenden E-Mail-Adresse in Google App Engine überprüft werden?

Ich versuche, eine stark E-Mail-basierte Anwendung in der Python SDK von Google App Engine zu schreiben. Ich habe festgestellt, dass Google ermöglicht Ihnen den Empfang von E-Mails über seine API und dass man damit leicht auf die Standardfelder wie Von, Bis, Körper usw. zugreifen kann. Wie kann ich jedoch überprüfen, ob eine E-Mail-Adresse von demjenigen stammt, von dem sie angeblich stammt (so wie Posterous es für Sie tut)? Ich habe keinen Zugriff auf die E-Mail-Kopfzeilen, kann also nicht den MX-Eintrag der IP-Adresse des Absenders oder etwas Ähnliches überprüfen.

Irgendwelche Ideen?

2voto

Alex Martelli Punkte 805329

Die Quellen sind zwar nicht gut dokumentiert, aber aquí vorschlagen, dass die ursprüngliche Mime-Nachricht, aus der die handlichen Objekte geformt sind, die Sie erhalten, als .original Eigenschaft des Handy-Objekts - das ist eine Instanz von email.message.Nachricht Sie sollten also in der Lage sein, die E-Mail-Kopfzeilen von dort abzurufen. Ich bin mir allerdings nicht sicher, ob Sie damit bei Ihrer Suche nach einer Validierung weiterkommen.

1voto

rjmunro Punkte 25846

E-Mail ist im Allgemeinen kein verifizierbares Medium, es sei denn, Sie signieren sie mit PGP oder S/MIME. Wenn Sie keine Kopfzeilen haben, können Sie auch nichts überprüfen.

Das Einzige, was Sie tun können, ist, eine E-Mail an die Adresse zu schicken und die Person zu bitten, zu bestätigen, dass sie die Nachricht wirklich abgeschickt hat. Das ist für den betrügerischen E-Mail-Absender viel schwieriger zu fälschen (aber nicht unmöglich).

Oder Sie könnten den Benutzer auffordern, in jeder Nachricht ein Passwort anzugeben.

1voto

Nick Johnson Punkte 99799

Alex hat Recht, was den Zugriff auf die Kopfzeilen angeht, aber das erlaubt Ihnen nicht, den tatsächlichen Absender der E-Mail zu überprüfen: Jeder kann eine E-Mail mit einer beliebigen Absenderadresse verschicken, also verlassen Sie sich nicht auf die Absenderadresse als maßgeblichen Beweis dafür, wer sie geschickt hat.

0voto

jldupont Punkte 87330

Wenn dies Teil eines Registrierungsprozesses oder ähnlichem ist, warum senden Sie dann nicht eine "Aufforderung" (z. B. eine URL für die weitere Registrierung oder was auch immer, mit einem eindeutigen und zeitlich begrenzten Schlüssel) an den (vermeintlichen) Absender zurück? Auf diese Weise können Sie überprüfen, ob die E-Mail-Adresse nicht gefälscht ist.

Die "Großen" (z. B. Google) verwenden dieses Verfahren häufig, es muss einen Grund dafür geben.

Ignorieren Sie meinen Vorschlag, wenn das nicht zu Ihrem Anwendungsfall passt.


Aktualisiert : Sie könnten die E-Mails über einen anderen (noch zu bestimmenden) Webdienst leiten, bevor sie Ihre GAE-Anwendung erreichen? Auf diese Weise könnten Sie GAE weiterhin nutzen und gleichzeitig eine Aufgabe mit geringem Verarbeitungsaufwand, wie z. B. die E-Mail-Verifizierung, an einem anderen Ort erledigen lassen?

0voto

themihai Punkte 7275

Sie können den Absender nur mit DKIM verifizieren. GAE signiert die E-Mails von Google-Konten automatisch mit DKIM, aber Sie benötigen einen externen Dienst (auf den über http/https zugegriffen werden sollte), um den DNS abzufragen und Ihnen die DNS-Felder zur Verfügung zu stellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X