CheckUser.phpを作って勉強になったこと


先日、「PHPでメールアドレスを正確にチェックするクラス」というものを作って公開したのですが、想像以上にいい勉強をさせてもらった。

メールアドレスの正規表現について

PEARのライブラリにMail_RFC822::isValidInetAddress()なんて便利なものがあるなんて全然知らなかった。
正規表現を紹介するサイトが多い割に、このライブラリを紹介するサイトがとても少ない気がする。

それにしてもこんなものがメールアドレスとして有効だなんて。。。

PHPでの正規表現のブログ記事についてこんな過激なご意見もあるようですがごもっともかも。

実際、Perlと比べると???という情報がやたら目につくのは事実かな。

MXレコードがない??

MXレコードが無いのにメールサーバーがあるというケースがあることを知らなかった。
MXレコードがないだけでは、メールが運用されていないということにはならないのですね。

SPFレコードを見に来るタイミングが。。。

これはスクリプトのテスト中に気がついたのですが、RCPT TOコマンドを送信するまでの時点では、SPFレコードは見に来ないのですね?
MAIL FROMコマンドに渡されるメールアドレスとかHELOに渡すFQDNとか意外とスルーだったので驚いた。

実際にメールデータを受け取ってからSPFレコードを見るのは効率的ではないような気がするが、難しいのかな?

DKIMやらSPFやらややっこしいもの導入する前に、HELOに渡されるFQDNが「localhost」だったらejectみたいな対策でも、かなりの迷惑メールが減るような気がするんだけど、そうではないのかな?

PerlのMail::CheckUserのMAIL FROMが。。。

デフォルトで、実在するドメインのメールアドレスになってました。。。
これに気がついたときは、おもわず吹き出してもた。(笑)

メールアドレスがモジュール名の語呂合わせになっているのでたぶん赤の他人のドメイン名のような気がするのですが、この会社は世界中のPerlプログラマが自分とこのドメイン名でRCPT TOコマンドをおくりまくっていることをご存じなんでしょうか?
(私も送りまくってしまったんですけどね。しかも何万回ってループでまわしたことがあるような。。。)

Mail::CheckUserをご利用のPerlプラグラマの皆様、以下のようにMAIL FROMはご自身のドメイン名に変えてあげましょう。(笑)

$Mail::CheckUser::Sender_Addr = 'user@example.com';

関連する記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>