Yahoo メールで登録した約100のサービスを棚卸しして、会社のアドレスへ移す
店舗で使う約100のサービスが Yahoo メールのアドレスで登録されていました。Google Workspace のアドレスへ移すため、IMAP でメールを読み、送り主のドメインを数える Python の道具で登録先を洗い出しました。二段階認証の管理にはパスワード管理のサービスを勧めました。

メールアドレスを変える前に、そのアドレスで登録しているサービスを洗い出すには、届いているメールの送り主を数えるのが近道です。私たちは、IMAP(メールソフトがメールを読むための仕組み)で Yahoo メールを読み、送り主のドメインを数える Python の道具を作って、約100のサービスを洗い出しました。
私たちのグループの店舗では、たくさんのサービスを使っています。その約100のサービスが、Yahoo メールのアドレスで登録されていました。
これを、Google Workspace(会社のメール)のアドレスへ移す方針を立てました。最初の一歩は、「どのサービスに、そのアドレスで登録しているか」を洗い出すことです。この記事は、その洗い出しの方法と、移す時に考えたことの記録です。
そのメールアドレスで何に登録しているかが、分からない
長く使っているメールのアドレスは、いろいろなサービスの登録に使われています。どこに登録したかを、すべて覚えている人はいません。

IMAP でメールを読んで、送り主を数える
どのサービスに登録しているかは、そのアドレスに届いているメールを見れば分かります。サービスからは、お知らせや請求、ログインの通知などのメールが届くからです。


import email
import imaplib
from collections import Counter
from email.utils import parseaddr
# 接続先とアカウントは、環境変数などから読む(記事には書かない)
box = imaplib.IMAP4_SSL(IMAP_HOST)
box.login(IMAP_USER, IMAP_APP_PASSWORD)
box.select('INBOX', readonly=True) # 読むだけ。メールを変えない
_, data = box.search(None, 'ALL')
domains = Counter()
for num in data[0].split():
_, msg = box.fetch(num, '(BODY.PEEK[HEADER.FIELDS (FROM)])')
sender = parseaddr(email.message_from_bytes(msg[0][1])['From'])[1]
domains[sender.split('@')[-1].lower()] += 1
for domain, count in domains.most_common():
print(count, domain)
候補の一覧から、登録先を確かめる
送り主のドメインの一覧には、登録しているサービスのほかに、広告のメールや、一度だけ届いたメールの送り主も混ざります。一覧を上から見て、実際に登録しているサービスかどうかを確かめ、移す先のアドレスへ変えていきます。

二段階認証の管理を、まとめる
サービスのアドレスを変える時は、パスワードと二段階認証(ログインの時の確認のコード)の管理も見直す機会です。サービスが約100もあると、誰がどのサービスのパスワードと確認のコードを持っているかが、ばらばらになりがちです。


まとめ

- 約100のサービスが Yahoo メールのアドレスで登録されていて、会社のアドレスへ移す方針を立てた
- IMAP でメールを読み、送り主のドメインを数える Python の道具で、登録先の候補を洗い出した
- メールの箱は読むだけで開き、メールの状態を変えないようにする
- パスワードと二段階認証の管理には、会社向けのパスワード管理のサービスを勧めた
この記事は、AI(Claude)の支援を受けて作成し、筆者が内容を確認しています。


