2010-06-30 16 views
3

有時由於來自用戶方的錯誤輸入,郵件反彈而未到達收件人。 (從谷歌應用程序引擎發送。)如何檢測谷歌應用程序引擎中的彈出郵件?

如何檢測此類電子郵件?

編輯: 可能是我並不清楚我的問題:

我想知道哪些郵件我已經派人這是回報(這樣我可以提醒用戶或刪除電子郵件ID)的郵件。這與電子郵件如何反彈有關。通常情況下,退回郵件與發送的郵件不完全相同,但信息不同,是否有任何特定的標頭或某處可以知道哪個電子郵件ID是? ......我想我在寫這些的時候已經弄清楚了,我保留這個問題,這樣可以幫助別人。

我只需從[email protected]發郵件並創建郵件接收處理程序。 :)

所以還有一個問題:app-engine(或任何郵件服務器)允許的電子郵件地址的最大長度是多少?

回答

0

最簡單的方法是通過base64或simiar編碼對電子郵件地址進行編碼,並將其前綴爲地址。

所有來自[email protected]的地址都是來自gae的有效電子郵件地址。

只需創建一個郵件接收處理程序。解碼from字符串並獲取您最初向其發送電子郵件的電子郵件地址。

傷心的事是本地部分允許的最大長度爲64個字符。在這種情況下,將電子郵件地址存儲在數據存儲中並將其密鑰用作電子郵件的本地部分可以作爲選項。

1

使用您的某個應用的地址作爲該地址的發件人地址([email protected])和register a handler。然後,您可以攔截並解釋任何回覆(自動或其他)。

+0

可能我不清楚我的問題,我修改了它,謝謝你的回答。 – iamgopal 2010-06-30 11:36:53

2

不幸的是,這是不可能的。

GAE自動爲您的電子郵件添加一個「Return-Path」標題。退回的郵件將被髮送到由該郵件頭標識的地址。您不能修改此標頭的值。

有關詳細信息,請參閱http://code.google.com/p/googleappengine/issues/detail?id=1800

+0

是的,注意到並盯着它。 – iamgopal 2011-01-16 07:46:36

3

谷歌實際上已經通過HTTP請求添加了a method for receiving bounced messages。它需要添加至app.yaml:

inbound_services: 
- mail_bounce 

這將導致一個請求,每次收到的反彈時間打/_ah/bounce。然後,您可以通過爲其添加處理程序來處理反彈。有關如何從這些請求中收集附加信息的更多詳細信息,請參閱處理退回通知的部分there