「Simple Mailform」を作成しました

PHPで「Simple Mailform」というメールフォームを作成しました。確認画面もない非常にシンプルなものです。githubにて公開中です。もし使いたい方がいれば、どうぞ。

https://github.com/sakairyota/simple_mailform

作成した理由

メールフォームを作成してgithubにアップロードした理由は以下の3点です。

  1. 仕事でメールフォームが必要だったため
  2. メールフォームを再利用したい
  3. 自分のソースコードを公開したい

必要に迫られて作ったと言えばそれまでなのですが、メールフォームが必要なことはこれまでにも何度かあり、これからも必要になることがあると考えると、ライセンスフリーなメールフォームを用意しておきたいと思いました。これが、メールフォームを作った理由です。

もうひとつには、自分のソースコードを公開したいというのがあります。採用活動をして思ったことですが、エンジニアの採用をするには、ソースコードを見るのが一番です。採用しようとした人のソースコードgithubに上がっていれば、エンジニアの腕をはかることができます。(そもそも、githubソースコードが上がっているだけで、最低限プログラムが書けるんだなというのは分かります。)

それで、自分の胸に手を当てて考えてみると、最近プログラムを公開したり、ソースコードを公開したりしていないなと感じます。そのため、まずはとても簡単なメールフォームから始めようというのが、ソースコードを公開した理由です。

(そのうち、RailsRSpecの開発に加われたらいいな〜)

プログラムの特徴

シンプルにつくる

「できるだけシンプルに作る」を目標に作りました。当たり前に大事なことですが、なかなか難しいことだと思います。

ファイルは2つだけ、メールフォーム本体のphpファイルと、送信完了画面のhtmlファイルです。プログラムは実質phpファイル1つだけです。これに関しては、設定とメール送信部とテンプレート部分などにファイルを分けるほうが正統な設計だとは思っています。しかし、プログラムがそこまで長くないこともあって、1ファイルに収めることで、ファイル構成や、スクリプトの配置が単純化されたと思っています。なお、確認画面を用意するなら、ファイルを分けていたと思います。

また、あえてクラスも関数も定義せずに書きました。ソースの構造化や再利用のために、クラスを作ったり関数を作ったりするのも当たり前のことですが、メールフォームは「フォームから受け取ったパラメータから、メールの本文を作成して、メールを送信する」というだけの単純な逐次処理のため、1ファイルに収まることもあって、逐次的に書きました。

(RubyとかJavascriptとかJavaとかが好きな事からもわかるように、本当はオブジェクト指向も、関数も、メソッドも大好きですよ。)

コメントを書く

もうひとつの目標は、コメントをきちんと書くことです。しばらくRubyに浸っていたので、コメントをあえて書かない流儀に従っていたのですが、最近コメントの重要性を再認識したので、コメントを書くようにしました。

Rubyを書いていると、「名前重要」が効いていてソースコードをみるだけで何をやっているのか見通しがよかったりするのですが、異常系の処理はやはり仕様として書き残すべきだと最近思います。(といいつつ、Simple Mailformでは、異常系のコメントはあまり書けていない気がしますorz。)

(あと、Rubyと違って、PHPだとコメントがないとソースが読めないですね。)

最後に

このようなことから、メールフォームを作りました。他の人に使ってもらいやすいように、MITライセンスにしたので、お気軽にご利用ください。(というか、私が会社で問題なく使えるようにするのが一番の目的ですが。)

https://github.com/sakairyota/simple_mailform

(それから、もし奇遇にもRailsRSpecの中の人が見ていたら、ひっそりと誘ってください。見てないと思いますが。method_missingとか__send__が分かる程度にはRuby書けます。)