曲者のBounce メール
サービスによって自社のメールサーバーを運用することもあるかと思います。
そのときに一番問題になるのがBounceメールの管理です。
Bounceメールとは、アドレスが存在しない、通信キャリアによってスパムメールとして分類されている、
などと言った理由で一時的に相手に届かなかったメールのことです。
こちら側が悪くなくても携帯会社によっては
キャリア以外のメールは受信しないなどの設定ができたりで
どうしてもBounceメールが発生してしまいます。
このメールが厄介で、Bounceしたメールアドレスに
送り続けてしまうとスパムメールとして判定されてしまいます。
そうするとドメイン自体が悪いものと見なされるわ、使いづらいわで
サービスの運用に多大な影響を及ぼします。
こりゃいかん!!
sendgridなどのサービスを利用すればBounceしたメールへの
送信を止めてくれますが、自社運用のメールサーバーではそうはいきません。
Python 3 の標準ライブラリである mail を使用することで
送信失敗して返ってくるMailDaemonなどの情報を取得できます。
そのスクリプトを利用して
Bounceメールアドレスを一覧で取得するDockeriMageを作成しました。
パラメーターとrunコマンドを実行することでラクラク取得できます。
また、volumeマウントしておくことで過去一度取得したデータは
データベースに保存するので再度取得する心配はありません。
使用するDockerImage
Docker hubに公開してあるのでDockerを入れている環境では問題なく動くはずです。
下記の環境変数を指定するだけで./out/mail_list.txtというファイルに出力します。
・メールサーバー
・ユーザー名
・パスワード
・対象とするメールアドレス(MAIL-DAEMONなどをカンマ区切りで)
(例)
1 |
docker run -d --rm -e LIST_PICK_ADDRESS_FROM=MAILER-DAEMON@example.co.jp -e MAIL_SERVER=mail3.example.co.jp -e USER=noffuy@example.co.jp -e PASSWORD=samplepass -v `pwd`/out:/opt/out noffuy/get_bounced_mail |
もしくはpullしてrunです。
1 2 |
$ docker pull noffuy/get_bounced_mail $ docker run -d --rm -e LIST_PICK_ADDRESS_FROM=MAILER-DAEMON@example.co.jp -e MAIL_SERVER=mail3.example.co.jp -e USER=noffuy@example.co.jp -e PASSWORD=samplepass -v `pwd`/out:/opt/out noffuy/get_bounced_mail |
Dockerってこういう時に使うのが一番適していると思う。
途中でデータ消えてもまあ大丈夫だし、cronで定期実行できるし
環境汚さない(?)で環境構築できるし。
なにか問題があったら気兼ねなくコメントしてください(´・ω・`)
じゃあね〜〜〜〜。