[英]How to verify sender of incoming email address in Google App Engine?
[英]google app engine python: how to validate an email address without a proxy server?
嘗試創建電子郵件驗證,而無需通過此鏈接使用stmplib發送電子郵件
http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/
由於我還沒有編寫任何代碼並試圖了解發生了什么。
似乎您必須使用mailgun之類的付費代理服務器之一。 (如果我錯了糾正我)
我們還有其他方法可以驗證電子郵件地址嗎?
可以使用此python代碼實現使用的方法,您需要安裝dnspython並調用verify_mail(mail)
import re
import smtplib
import dns.resolver # from http://www.dnspython.org/
def get_mx(domain):
for x in dns.resolver.query(domain, 'MX'):
return x.to_text().split()[1].strip('.')
def verify_mail(mail):
domain=re.findall('@(.*)', mail)[0]
mx=get_mx(domain)
smtp=smtplib.SMTP(mx)
i,m=smtp.connect(mx)
i,m=smtp.helo()
i,m=smtp.verify(target)
if i==250: return True
else:
i,m=smtp.mail('myemail@gmail.com')
i,m=smtp.rcpt(target)
if i==250: return True
else: return False
if __name__=='__main__':
print verify_mail('banana@yahoo.com')
GAE尚不支持此方法。 所描述的方法要求您連接到SMTP服務器,並詢問服務器是否存在電子郵件地址。 這需要GAE上的出站套接字支持,該支持尚不可用 (除非通過其受信任的測試人員計划接受了您)。 您需要出站套接字支持才能在域上進行DNS查找查詢以獲取SMTP服務器連接以及實際連接到SMTP服務器。
您還應該意識到,此方法不適用於所有SMTP服務器實現。 某些服務器可能不響應這些類型的請求。
我認為,現在您必須滾動自己的實現以通過HTTP進行工作,或支付可以為您完成此操作的服務。
更新:
從1.7.7 SDK開始, Sockets API已以實驗狀態發布。 盡管它們明確禁止連接到傳出套接字上的端口25(smtp)。 這將極大地禁止您(通過端口587)可以連接多少個SMTP服務器來驗證給定的電子郵件地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.