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や映画製作などに興味のある方からの応募をお待ちしております。