Perlゼミ

YAPC::Kansaiでのメールフォームのリファクタリングは僕ならどう書くかな

3月4日はYAPC::Kansaiが新大阪でありましたね。熱気と楽しみに盛り上がっていましたね!!! 今週中には、自分のプレゼンテーションをアップしようと思っています。

ところで弾さんが実演でメールフォームのリファクタリングやってましたけど、僕ならどう書くかなぁって考えてました。

メール送信はMIME::LiteかEmail::Senderで置き換える

メール送信はCPANモジュールを使ってMIME::LiteEmail::Senderで置き換えるのがいいんじゃないかな。

どちらもsendmailを簡単に使うためのラッパーになっているよ。それ以外の送信方法もあるけど、デフォルトはsendmailを使う。

MIME::Liteは開発が終わっちゃたんだけど、ちょっと使う分には今でもやっぱりこれが便利ね。Eメールモジュール開発コミュニティの意向にそうのであれば、Email::Senderを使うのがいいんじゃないかな。

メールのバリデーションはEmail::Valid::Loose

メールのバリデーションは簡単にやるなら正規表現で「アスキー文字@アスキー文字」っていう正規表現を書くと思う。

CPANモジュールを使ってやるならEmail::Valid::Looseがいいんじゃないかな。日本の携帯電話のEmailは、メールの仕様を一部満たしていないようで、このモジュールはそれに対応している。

本当に正しいメールをフォームの時点で判定するよりは、ゆるやかに受け入れておいて、そのあとにバッチ処理とかで、無効なメールを処理するなんて方法もよいかもね。

送信フォームの部分はMojoliciousのテンプレートで

cgi-lib.plを使って、HTMLをprintして送るというのはちょっと辛いものがあるね。HTMLはMojoliciouのテンプレートで書いて、CGI対応させるとよい。MojoliciousはCGIに対応しているから、CGIフォームの書き換えがそのままできるよ。

CGIの出力フォーマットに合うデータをMojoliciousが書き出してくれる。

10年耐えられるメールフォームになる

本編では3日くらいしか耐えられなさそうだったけど、この三つをやると10年耐えられるようになると思うよ。

Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「こっ、こしゃくな。
このPerオタクめ~!」

Twitter
フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

木本システム株式会社
ご紹介キャンペーン実施中です。契約金額の10%をご紹介料としてお支払い。

(例)30万円のシステム開発委託契約が、1年続いたら、36万円がもらえる!!!