我創建一個Python函數檢查一個給定的電子郵件ID是否真正在Python的存在與否。這裏是我的代碼:檢查的電子郵件中是否存在與否,只適用於Gmail帳戶,其他人沒有工作
def email_validate(email_address):
addressToVerify = email_address
domain_name = addressToVerify.split('@')[1]
try:
records = dns.resolver.query(domain_name, 'MX')
except Exception as e:
print e
a = traceback.format_exc()
print a
return HttpResponse(json.dumps({"success":False,"message":"Email Domain is not valid."}), content_type="application/json")
mxRecord = records[0].exchange
mxRecord = str(mxRecord)
server = smtplib.SMTP()
server.set_debuglevel(0)
# SMTP Conversation
server.connect(mxRecord)
server.helo(host)
server.mail('[email protected]')
try:
code, message = server.rcpt(str(addressToVerify))
server.quit()
except:
a = traceback.format_exc()
if code == 250:
return HttpResponse(json.dumps({"success":True,"message":"Email ID is valid."}), content_type="application/json")
else:
return HttpResponse(json.dumps({"success":False,"message":"Email ID is not valid."}), content_type="application/json")
此代碼工作正常使用Gmail帳戶,但它給出了一個錯誤的其他電子郵件ID的。如果我嘗試其他電子郵件ID的,這條線:
code, message = server.rcpt(str(addressToVerify))
給出了一個錯誤...... 還有,我應該怎麼檢查這對其他電子郵件ID的?
你嘗試只是一個單獨的程序與幾個不同的手工編碼的投入'server.rcpt(STR (addressToVerify))'來驗證它是否工作NG?另外,準確的錯誤是什麼?你可以在'try'塊中找到它,所以你應該處理異常... –
你可以嘗試使用[validate_email](https://pypi.python.org/pypi/validate_email)包! –
你會得到什麼錯誤? – Nurjan