IMAPメールを条件をしぼって受信して、メール件名と受信日時を確認できるようにしました。認証はSTARTTLSのユーザーパスワード認証です。
- 下記のpythonファイルを作成します。
import imaplib import ssl import email from email.mport decode_heke_header host = "IMAPメールサーバー" username = "名前" password = "パスワード" context = ssl.create_default_context() imapclient = imaplib.IMAP4(host, 143) imapclient.starttls(ssl_context=context) imapclient.login(username, password) imapclient.select() # デフォでINBOXメールボックスを選択 # もしメールボックスをリストさせたい場合は、print(imapclient.list())で確認可能 search_option = '(SUBJECT "テスト" FROM "darekasan@tekitou.jp" )' # メール件名 AND 送信元アドレスでフィルター typ, data = imapclient.search(None, search_option) datas = data[0].split() fetch_num = 10 #確認したいメール件数 if (len(datas)-fetch_num) < 0: fetch_num = len(datas) msg_list = [] for num in datas[len(datch_num::]: typ,data = imapclient.fetch(num, '(RFC822)') msg = email.message_from_bytes(data[0][1]) msg_list.append(msg) imapclient.close() imapclient.logout() for msg in msg_list: subject = str(make_header(decode_header(msg["Subject"]))) date = str(make_header(decode_header(msg["Date"]))) print(subject) print(date)
2. ターミナルから上記pyファイルを実行
python [上記ファイル名].py
これで、メール件名と受信日時がターミナルに表示されたと思います。以上です。
python実行用に仮想環境を作りたい、GitHubでコード管理したい人は下記も参考になれば、嬉しいです。