繁体   English   中英

如何在不发送email的情况下通过验证记录验证python中的email?

[英]How to verify an email in python without sending an email by verifying records?

import smtplib, ssl
import dns.resolver,socket

smtp_server= 'smtp.gmail.com'
port = 465
sender = 'reddy@gmail.com'
pssword = ''
addressToVerify = 'raghavareddy@smatbot.com'

context = ssl.create_default_context()

domain_name = addressToVerify.split('@')[1]
print('domain_name :  '+domain_name)
records = dns.resolver.resolve(domain_name, 'MX')
mxRecord = records[0].exchange
print(mxRecord)

host = socket.gethostname()
print('hosttttttttttt==',host)

try:
    server = smtplib.SMTP_SSL(smtp_server,port)
    server.ehlo()
    #server.starttls(context = context)
    server.ehlo()
    server.login(sender,pssword)
    ss = server.connect(str(mxRecord),465)
    #print(ss)
    pp = server.verify(addressToVerify)
    print(pp)
    ss = server.rcpt(addressToVerify)
    print(ss)
    print('ok')

except Exception as e:
    print(e)

我试图验证 email 地址,但它在未连接 mxrecords 时抛出错误

[WinError 10060] A connection attempt failed because the connected party did not properly respond 
after a period of time, or established connection failed because connected host has failed to respond

它没有连接到 MX 记录。 在验证时

RCPT (503, b'5.5.1 MAIL first. p2-20020a17090ad30200b001cd4989feb7sm14376983pju.3 - gsmtp')

503错误代码表示“服务器遇到了错误的命令序列,或者它需要身份验证。

请建议验证 email 的标准方法。

请建议验证 email 的标准方法。

如果不发送带有 nonce 的 email,并等待它在某个时间范围内被使用,则不能。

服务器不会让你随意测试email地址是否存在,否则这里就是垃圾邮件发送者的天堂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM