簡體   English   中英

如何在Google App Engine中驗證收到的電子郵件地址的發件人?

[英]How to verify sender of incoming email address in Google App Engine?

我正在嘗試在Google App Engine的Python SDK中編寫一個基於電子郵件的應用程序。 我注意到Google 允許您通過其API接收電子郵件 ,並且它可以讓您輕松訪問標准字段,例如From,To,Body等。但是,如果我正在嘗試驗證電子郵件地址是否來自誰說它來自(有點像Posterous為你做的那種方式),我該怎么辦? 我無法訪問任何電子郵件標題,因此我無法檢查發送服務器IP地址的MX記錄或任何類似的內容。

有任何想法嗎?

實際上,雖然沒有很好的文檔記錄,但這里的消息來源表明,你得到的方便對象的原始mime消息.original方便對象的.original屬性 - 這是email.message.Message的一個實例,所以你應該能夠從那里獲得電子郵件標題。 不過,我不確定這會讓你在進行驗證時更進一步。

除非您使用PGP或S / MIME簽名,否則電子郵件通常不是可驗證媒體。 如果您沒有標題,則無法驗證任何內容。

您唯一能做的就是通過電子郵件發送地址並要求該人確認他們確實發送了該消息。 對欺詐性電子郵件發件人來說,假冒(但並非不可能)要困難得多。

或者您可以要求用戶在每條消息中輸入密碼。

亞歷克斯是正確的訪問標題,但這不允許您驗證電子郵件的實際發件人:任何人都可以發送他們希望的任何“發件人”地址的電子郵件,所以不要依賴來自地址作為權威證據誰送了它。

您只能使用DKIM驗證發件人。 GAE使用DKIM自動簽署Google帳戶電子郵件,但您需要外部服務(應通過http / https訪問)來查詢DNS並為您提供txt DNS字段。

如果這是注冊過程的一部分或類似的,那么為什么不向(假定的)發起人發回“挑戰”(例如,用於繼續注冊的URL或具有唯一且有時限的密鑰)? 這樣您就可以驗證電子郵件地址是否是偽造的。

“大家伙”(例如谷歌)使用這個過程很多,必須有一個理由。

如果不適合您的用例,請忽略我的建議。


更新 :您可以在到達GAE申請之前讓電子郵件通過另一個Web服務(待定)? 這樣,您仍然可以利用GAE,同時在其他地方完成電子郵件驗證等低處理開銷工作?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM