この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
メールアドレス管理
ログインを行うとき、「メールアドレス」と「パスワード」を求めるサービスは多いのではないでしょうか?
サービス管理者は、メールアドレスを有無を確認して無効になったメールアドレスには不要なメールを送らないといった施策が求められます。
携帯キャリア宛のメール
携帯キャリア宛のメールはPCから送信されるメールに対しての規制が厳しいことで知られています。
送信者偽称の対策としてSPF(Sender Policy Framework)やDKIM(DomainKeys Identified Mail)の設定を行っていても、ユーザー登録を行ったときの認証メールでさえ届かないことがあります。確実に届けるためにはユーザーに「ドメイン許可設定」を行ってもらい、対象のドメインをホワイトリストに登録してもらうしかありません。
メールマガジン配信時の問題
重要なお知らせなどユーザー全員に一括でメール送信するメールマガジンを配信するとき、携帯キャリア宛の送信は注意を払う必要があります。携帯キャリアは、メールのエラー率が5%を超えると該当のドメインまたはIPアドレスからの接続を一時的に拒否する可能性が高くなります。
通常のサービス運用時にはメールの到達率が下がる可能性は低いですが、メールマガジンの配信時は話が別です。重要なお知らせは長期間ログインしていない古いユーザーにも送信しない訳にはいきません。
- 1.メールマガジンの一括配信
- 2.メール到達率が下がり、携帯キャリアから接続拒否を受ける
- 3.通常運用に必要なメールが届かなくなりサービスに障害をきたす
の流れが見えて恐怖を感じますね(苦笑)。
メールマガジン配信の専用サーバーやサービスを利用する手もあります。また定期的に確認メールを送る方法も考えられますが、事前にメールを送信せずに無効なメールアドレスでないかを確認する方法を考えてみます。
メールを送信せずにメールアドレスの有無の確認
今回はtelnetで該当のメールアドレスがあるか無いかを確認してみようと思います。
考え方としては、telnetでメールを送信するときは、
- 1.相手のメールサーバーとの接続確認
- 2.送信者の設定
- 3.宛先の設定
- 4.メールのタイトルと本文の設定
- 5.メールの送信
の手順で行います。そこで1~3までを行い、メール自体は作成せずにメールアドレスの有無だけをチェックします。
下記のサンプルはドコモのメールサーバーにメールアドレスの有無を確認したときの反応です。
ユーザーが居る可能性が高いとき応答
1 2 3 4 5 6 7 8 9 10 11 |
[root@localhost] telnet mfsmax.docomo.ne.jp 25 Trying (mfsmax.docomo.ne.jpのIPアドレス)... Connected to mfsmax.docomo.ne.jp. Escape character is '^]'. 220 docomo.ne.jp ESMTP Service Ready helo localhost 250 Requested mail action okay, completed mail from: (送信者のメールアドレス) 250 Requested mail action okay, completed rcpt to: (宛先のメールアドレス) 250 Requested mail action okay, completed |
ユーザーが居ない可能性が高いとき応答
1 2 3 4 5 6 7 8 9 10 11 |
[root@localhost] telnet mfsmax.docomo.ne.jp 25 Trying (mfsmax.docomo.ne.jpのIPアドレス)... Connected to mfsmax.docomo.ne.jp. Escape character is '^]'. 220 docomo.ne.jp ESMTP Service Ready helo localhost 250 Requested mail action okay, completed mail from: (送信者のメールアドレス) 250 Requested mail action okay, completed rcpt to: (宛先のメールアドレス) 550 Unknown user (宛先のメールアドレス) |
ユーザーが居る可能性が高いときは「250 Requested」の応答が返ってきて、ユーザーが居ない可能性が高いときは「550 Unknown user」の応答が返ってきています。
さいごに
telnetを利用したユーザーの確認方法を紹介しましたが、いかがでしたでしょうか?
サンプルコードをPHPなどでプログラム化したソースを公開しようかとも考えましたが、迷惑メールを送信する事業者が喜びそうなので自粛しました。みなさんもサンプルを元にtelnetでメールアドレスの有無をメールサーバーに確認するときは、相手サーバーの負荷にならない範囲内で試して下さい。