前提・実現したいこと
Pythonでこちらの記事を参考にして、メールアドレスの存在を行いたいです。しかし、下記のエラーがでました。
発生している問題・エラーメッセージ
main.py:17: DeprecationWarning: please use dns.resolver.resolve() instead records = dns.resolver.query(mail_domain, 'MX') gmail-smtp-in.l.google.com. [WinError 10051] 到達できないネットワークでソケット操作を実行しようとしました。
該当のソースコード
Python
1import re 2import dns.resolver 3import socket 4import smtplib 5 6mail_address = 'test777@gmail.com' 7 8# メールアドレス構文チェック 9match = re.match('[A-Za-z0-9._+]+@[A-Za-z]+.[A-Za-z]', mail_address) 10if match == None: 11 print('Syntax error') 12 exit() 13 14# ドメインチェック 15mail_domain = re.search("(.*)(@)(.*)", mail_address).group(3) # ドメイン部分の取り出し 16try: 17 records = dns.resolver.query(mail_domain, 'MX') 18 mxRecord = records[0].exchange 19 mxRecord = str(mxRecord) 20 print(mxRecord) 21except Exception as e: 22 print('None of DNS query names exist') 23 exit() 24 25# メールアドレス存在チェック 26local_host = socket.gethostname() 27 28server = smtplib.SMTP(timeout=5) 29server.set_debuglevel(0) 30 31try: 32 server.connect(mxRecord) 33 server.helo(local_host) 34 server.mail('test@example.com') 35 code, message = server.rcpt(str(mail_address)) 36 server.quit() 37 38 if code == 250: 39 print('Address exists') # 250 OK 40 else: 41 print('Address does not exists') 42except Exception as e: 43 print(e)
試したこと
dns.resolver.queryの代わりに、dns.resolver.resolveを使用しましたが、解決しませんでした。また、VPNは使用していません。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。