[尝试检查电子邮件有效性时出现WinError 10060

问题描述 投票:0回答:1

我基于我在互联网上找到的代码(在许多不同的来源中也出现了相同的代码)。我在办公室尝试了一下,效果很好。但是现在我在家(在家工作),并且得到了[WinError 10060]。

import re
import dns.resolver
import socket
import smtplib

email_address = [email protected]

#Step 1: Check email
#Check using Regex that an email meets minimum requirements, throw an error if not
addressToVerify = email_address
match = re.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z] {2,4})$',addressToVerify)

if match == None:
    print('Bad Syntax in ' + addressToVerify)
    raise ValueError('Bad Syntax')

#Step 2: Getting MX record
#Pull domain name from email address
domain_name = email_address.split('@')[1]

#get the MX record for the domain
records = dns.resolver.query(domain_name, 'MX')
mxRecord = records[0].exchange
mxRecord = str(mxRecord)

#Step 3: ping email server
#check if the email address exists

# Get local server hostname
host = socket.gethostname()

# SMTP lib setup (use debug level for full output)
server = smtplib.SMTP()
server.set_debuglevel(1)

# SMTP Conversation
server.connect(mxRecord)
server.helo(host)
server.mail('[email protected]')
code, message = server.rcpt(str(addressToVerify))
server.quit()

# Assume 250 as Success
if code == 250:
    print('Y')
else:
    print('N')
python-3.x email-validation
1个回答
0
投票

也许是由于代理。

如果使用Linux系统,请删除环境变量或bash配置文件/终端中的任何代理。以管理员身份打开Command终端,或者在Linux终端的情况下以sudo身份运行,然后尝试。

© www.soinside.com 2019 - 2024. All rights reserved.