MLのようなものを自作するにあたって、メール送信前にそのアドレスが存在するのかをチェックします。

pip install git+https://github.com/rthalley/dnspython

該当部分を抜粋

import re
import dns.resolver
import socket
import smtplib

mail_address = input("調べたいメールアドレス")

# ドメインチェック
mail_domain = re.search("(.*)(@)(.*)", mail_address).group(3) # ドメイン部分の取り出し
try:
    records  = dns.resolver.query(mail_domain, 'MX')
    mxRecord = records[0].exchange
    mxRecord = str(mxRecord)
    print(mxRecord)
except Exception as e:
    print('None of DNS query names exist')
    exit()

# メールアドレス存在チェック
local_host = socket.gethostname()

server = smtplib.SMTP(timeout=5)
server.set_debuglevel(0)

try:
    server.connect(mxRecord)
    server.helo(local_host)
    server.mail('test@example.com')
    code, message = server.rcpt(str(mail_address))
    server.quit()

    if code == 250:
        print('Address exists') # 250 OK
    else:
        print('Address does not exists')
except Exception as e:
    print(e)

複数ある場合にはこれをループでまわすだけ。ネットに落ちてたコードをコピペでいけました。

万屋物産は映像制作会社ですが、映像スタッフ以外の職種も積極採用中です。
最新の3Dや映画製作などに興味のある方からの応募をお待ちしております。