メールアドレスのドメインのチェックはMXレコードだけじゃなくAレコードも見ないとダメ。
ずいぶん前に、聞かれたことがあったので。
とあるWebサービスのとある利用希望者が、「俺のメールアドレスは taro@hogehoge.example.com なんだが、ユーザー登録しようとすると、メールアドレスが間違ってるぞと言われる、なんでや!」というクレームをつけてきたんだそうな。
調べてみると、hogehoge.example.com でDNSのMXレコードが確かに引けない。んで、会員登録画面のアプリはメールアドレスの正否を確認するためにMXレコードの有無判定を実装しているんだと。
「これってこのユーザーがバカ自分のメルアドを覚え間違ってるんですよね!」とか言うもんで、これはと思って調べたら、案の定、hogehoge.example.comはMXでは引けなくてもAレコードは設定されてた。
「そのユーザーは悪くない。Aレコードも引くように実装しなかったお前が悪い」と伝えた。
例えば、PHPのPEARのValidateパッケージにもメールアドレスの正否確認用のメソッドがあるのだが、そこではドメイン部分についてはMXレコードとAレコードのどちらかの存在チェックをもってよしとしている。 [svn] Contents of /pear/packages/Validate/trunk/Validate.php583行目あたり。 perlのcpanのEmail::ValidやMail::CheckUserとかでも同じ。
巷の解説書やらなんやらには、メールアドレスのドメインに対してはMXレコードというものを設定してどうの、、、と書かれているだけのものが大半なので、そう覚えてしまっている人もいるらしい。
確かに一般的なメールアドレスはそのドメインとそのMTAとなるマシン(群)とがMXレコードによってひもづけられている。しかし、MTAとして稼動しているマシンのFQDNそのものをメールアドレスのドメイン部分に使っているメールアドレスは多くもないけど珍しくもない。大昔のインターネットではそっちのほうが多かったし、今でも自宅サーバとかではAレコードの設定だけでやってるケースはありうる。
see also:
- Webアプリでメールアドレスを確認する「正しい」方法 (2007/12)
コメントする
(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)