3 Stimmen

Wie erkennt man Bounce-Mails in Google App Engine?

Manchmal aufgrund von Fehleingaben von Seiten des Benutzers, die Mail wird gebounct und erreicht den Empfänger nicht. (von Google App Engine gesendet.)

Wie kann man solche E-Mails erkennen?

bearbeiten: Vielleicht habe ich mich in meiner Frage nicht klar ausgedrückt:

Ich möchte wissen, an welche Mail ich die Mail gesendet habe, die zurückgegeben wurde (so dass ich den Benutzer alarmieren oder die E-Mail-ID löschen kann). Dies ist mehr im Zusammenhang mit, wie E-Mail Bounce funktioniert. normalerweise die Bounce-Mail kommt nicht genau das gleiche wie gesendet, aber mit verschiedenen Informationen, gibt es eine bestimmte Kopfzeile oder etwas dort zu wissen, welche E-Mail-ID war, dass ... ich denke, ich habe herausfinden, während diese zu schreiben, ich halte diese Frage, so dass es jemand helfen könnte.

Ich werde einfach von base64encodedrecipientemailaddress@myapp.appspot.com aus mailen und einen Mail-Empfangs-Handler erstellen :)

Noch eine Frage: Welche maximale Länge erlaubt app-engine (oder jeder andere Mailserver) für eine E-Mail-Adresse?

3voto

yydl Punkte 23778

Google hat in der Zwischenzeit Folgendes hinzugefügt ein Verfahren zum Empfang abgelehnter Nachrichten über eine HTTP-Anfrage. Es erfordert das Hinzufügen zu Ihrer app.yaml:

inbound_services:
- mail_bounce

Dies führt dazu, dass eine Anfrage auf /_ah/bounce jedes Mal, wenn ein Bounce empfangen wird. Sie können dann den Bounce behandeln, indem Sie einen Handler für ihn hinzufügen. Siehe den Abschnitt dort unter Behandlung von Bounce-Benachrichtigungen finden Sie weitere Einzelheiten darüber, wie Sie die zusätzlichen Informationen aus diesen Anfragen gewinnen können.

2voto

Koen Punkte 21

Leider ist dies nicht möglich.

GAE fügt automatisch einen "Return-Path"-Header zu Ihrer E-Mail-Nachricht hinzu. Abgelehnte Nachrichten werden an die Adresse gesendet, die in dieser Kopfzeile angegeben ist. Sie können den Wert dieses Headers nicht ändern.

Siehe http://code.google.com/p/googleappengine/issues/detail?id=1800 für Einzelheiten.

1voto

Nick Johnson Punkte 99799

Verwenden Sie eine der Adressen Ihrer Anwendung als Absenderadresse (anything@yourapp.appspotmail.com) und einen Handler registrieren für diese Adresse. Dann können Sie alle (automatischen oder sonstigen) Antworten abfangen und interpretieren.

0voto

iamgopal Punkte 8109

Am einfachsten ist es, eine E-Mail-Adresse mit base64 oder einer ähnlichen Kodierung zu kodieren und sie der Absenderadresse voranzustellen.

alle Adressen von something@myapp.appspotmail.com sind gültige E-Mail-Adressen für von in gae.

Erstellen Sie einfach einen E-Mail-Empfangs-Handler. Dekodieren Sie die from-Zeichenkette und ermitteln Sie die E-Mail-Adresse, an die Sie die E-Mail ursprünglich gesendet haben.

Traurige Sache ist maximal 64 Zeichen Länge für lokalen Teil erlaubt. in diesem Fall Speichern von E-Mail-Adresse im Datenspeicher und mit seinem Schlüssel als lokalen Teil zu E-Mail kann eine Option sein.

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