BitArts Blog

ロードバイク通勤のRubyプログラマで伊豆ダイバー。の個人的なブログ。

静的HTMLの問い合わせフォームからメール送信するHeroku Buttonアプリ

Heroku Buttonこと、Deploy to Herokuボタンとは、これをクリックすると、自分のHerokuアカウントにサードパーティのWebアプリをデプロイしてくれるという機能。地味なようで結構画期的なサービス。

今回僕も試しにHeroku ButtonでデプロイできるWebアプリを作ってみた。

どんなアプリかというと、

お客さんから「静的なコンテンツだけだよ」と聞いていたのに、さらっと「ここ、お問い合わせフォームで」とか言われる事態は普通にありすぎることなので想定しておくべきです。その実装方法としては、静的ファイルだけで構成しているのに、フォームのページだけWebアプリ化するというのは、個人的にはくやしいので、フォームは静的なまま、POST先だけフリーのCGIを使ったりしていました。悪くはないんだけど、最近はNginx派なのでCGIとか逆に面倒じゃないですか。ということでSinatraを使ってシンプルなのを作っておくことにした。DBも使わないんだし無料版のHerokuで動かすことにした。これをHeroku Button対応にした。

Deploy

↑ これをクリックして自分用にデプロイすると、SendGridのプラグインもインストールされて、SMTPサーバ周りはすべて自動設定される。(SendGridの無料枠で200件/1日までok)

最低限必要な設定として、Config Varsで「FORMS」に

{"http://example.com/contact.html": ["sendto@example.com", …], …}

という感じでフォームのURLとメールの送信先(配列)をJSONで書いておく。複数設定しておけます。

あとは、このアプリのURLの/にPOSTすればメールが飛びます。

Heroku Button、すごく単純な仕組みなんだけど、とても面白い。