お嬢さん知ってるかい?
その昔「ホームページ」と言えば誰しも、メールフォームを通じて最初にCGIに触れたものだったよ……。
おー、そうそう。同じく「アクセスカウンター」を通じてSSIに触れたんだよね……という台詞が脳内で続いたアナタはきっと管理人と同世代。
しかしながら歳月の流れは容赦なく。
坊ちゃん嬢ちゃんはオッサンオバサンとなり。
もはやアクセスカウンターなんて、ほとんど見なくなって久しい。
たまに見かけると嬉しい「ゲッツの人ダンディ坂野」みたいな存在になっているのは管理人だけだろうか?
さて一方でメールフォームはというと、バリバリ現役である。
当サイトのような個人用ブログでは「コメント」機能の手軽さに置き換えられている事が多い。
でもそこいらの企業ページで「コンタクト」のリンクさえクリックすれば、いつでも懐かしのメールフォームさんに会える。
もっとも最近のはAjaxだったり、メールでなく内部DBに記録するだけだったり、一緒にしないでよオジサン、と言われそうではある。
まあそんなこんなで、やはり当ブログも非公開メッセージを送りたい人はきっと居るに違いない!と「お問い合わせフォーム」を導入することにした。
Heroku上のウェブアプリで受付フォームを実現するには
当ブログはHeroku上で動いている。
おかげで無料なのに何でもやりたい放題なのであるが、当然、自由には義務が伴う。
たとえばメール送信も、これが巷に溢れる無料ブログサービスであるなら、ほぼ無料の範囲でメールフォーム用にSMTPサーバを利用可能だ。
おかげでマニュアル通りに設定さえすればそれでOKである。
一方、Herokuは残念ながらSMTPサービスを用意していない。
それを許せばSPAM送信者たちの餌食となるだけだから賢明な判断だろう。
と言うことで他の選択肢を探すのであるが。
ざっと以下のようなモノが考えつく。
- SMTPサーバを自前で用意する
- メールでなくDB保存型フォームを利用する
- 無料のメールフォーム提供サービスを利用する
- GmailなどWebメールサービスが提供するSMTPを利用する
- SendGridなどクラウド配信サービスを利用する
意外に選択肢は多い。きっとまだまだ他にもあるが、まあ基本はこんなところだろう。
それでは、各選択肢を順番に検討していこう。
SMTPサーバを自前で用意する
一応、候補には入れたけれど……
クラウドサービスが色々ある中で、自前で準備するのはもう今どきのソリューションとしては最初から対象外としちゃっていいんじゃないだろうか。
準備もメンテも面倒くさいし、手間かけた分のメリットは皆無と言っていいだろう。
ということで除外。
他の方へのおすすめもできない。
メールでなくDB保存型フォームを利用する
たとえばワードプレスの「JetPackプラグイン」などが提供するフォームは、入力内容をメールで通知する以外にDBへも保存してくれる。
https://ja.wordpress.org/plugins/jetpack/
これを、メール設定をしない状態で運用するのだ。ならばSMTPなんて不要。
設置も難しくない。初心者お薦めであろう。
ただしメールを受信したという通知がもらえないということは、
DBに溜め込む内容を適宜チェックしに行かないとダメということだ。
うっかりチェックを忘れると、重要な顧客からの問い合わせを放置するはめにはる。
ある意味フォームを「非公開コメント」の別途受け付け口であるかのようなイメージで用いるのなら、それもアリかもしれない。
しかし残念ながら、ことHerokuにおいては……DBの容量にも無料で利用できる限度がある。
つまり、もし大量にメールが届いた日なんてあれば即アウト。
当方の「無料でなんとかする」という卑しい理想を追求するなら、DBに溜め込まず、さっさと外へ吐き出す仕組みがどうしても必要なのである。
ということで管理人の候補からは除外する。
が、もちろん、そんな無料志向なんて不要という方は検討の価値があることは間違いないだろう。
無料のメールフォーム提供サービスを利用する
今回調べて知ったのだが世の中には、メールフォームだけを提供するサービスというのもあるらしい。
無料ブログのように全てを提供するわけではなく、メールフォームの部分だけを切り取ったようなサービスだ。
ニッチ系って本当に色んな隙間に入り込んでいるなあ、と改めて思う。
それらのサービスに登録すればWEB上でカスタマイズしたフォームを利用できる。
利用方法も簡単で、生成されたHTML/Javascriptコードをワードプレスの固定ページなどに貼り付けるだけだ。
それでメールの通知はもちろん、さらに個々の問い合わせ内容をサービス側のDBへ保存してくれるというのだから便利この上ない。
デメリットと言えば、表示されるフォームに広告が付くということぐらいだろう。
あとは、問い合わせの内容を外部サービスに見られる可能性というセキュリティ上の懸念ぐらいだろうか?
もしあなたがゴルゴ13で、問い合わせの内容が主に非合法な暗殺依頼だという場合は利用できないかもしれない。
幸いなことに世の中の殆どの人はゴルゴ13ではないので(当たり前だ!)、これは杞憂だろう、きっと。
お仕事用のブログ等でないか、あるいはビジネスユースであっても他社・競合の広告が出てもいいよ、というポリシーであれば採用もありだろう。
GmailなどWebメールサービスが提供するSMTPを利用する
GmailやYahooメールなどWebベースのメールサービスでは、ローカルクライアントのメールソフト(メーラー)でも利用できるようpopサーバやsmtpサーバを公開している。
そしてそのSMTPサーバは、ワードプレスが利用する送信サーバとしても利用できるというのだから有り難い。
導入も簡単だ。
「WP Mail SMTP」プラグインをワードプレスに導入して、GmailなどのSMTP情報を入れれば良いだけ。
その設定方法は検索すれば山ほど出てくるのでここでは書かない。
おそらくこれが、野良ワードプレスにおいてメール送信を実現するファースト・チョイスであろう。
ということで当ブログへの採用候補にも入れておこうと思う。
SendGridなどクラウド配信サービスを利用する
これもある意味、ニッチなのだろうか。
クラウドのメール配信サービス。つまりメール送受信だけに特化したサービスである。
GmailといったWebメールサービスと違うのは、クライアントとしての「メーラー」を提供しない点。
むしろ、その裏側で動くSMTPサーバをインフラとして提供するクラウド・サービスと考えよう。
ターゲットは業務で大量にメールを送る人または会社。
別にSPAMerじゃなくとも顧客にメールを送りたい会社は世の中あふれている。
マーケティング・メール以外にも例えば何万人単位の読者へメルマガなどを送りたい人が居るかも知れない。
そんなリクエストに応えるメール配信サービスとして有名なのは以下あたり。
- Amazon SES (Simple Email Service)
- SendGrid
- Mandrill (MailChimp)
大量送信を想定したサービスなので、具体的には以下のような機能を提供している。
- 1回あたり百万通といった大量送信が可能。(ただしプランごとに制限あり)
- バウンス(宛先不明)メールをリストアップしたり次回から除外するルールを作れる
- Fromに独自ドメインを使える。もちろんDNSによるドメイン認証にも対応
- 何らかのエラーが起きたときなどイベントをコールバックする仕組みも用意されている
- そのコールバックする仕組み(WebHook)を利用すれば実はメール受信もできる
さらにSendGridはワードプレス用に自社公式プラグインも提供している。
なのでワードプレス上でオンライン・セミナーとかECサイトとかを構築する人で、顧客へ一斉にメールを送りたい要望をお持ちならお薦めだ。
GmailとかのSMTPサーバでそういうことやっちゃうとSPAMer認定されて速攻で弾かれそうな気がするし。
まあ……ぶっちゃけ「個人ブログにおける問い合わせフォームのため」ってのはオーバースペック過ぎよう。
結論
当ブログの採用候補として悩むところだけれど、SendGridを採用することにした。
やはり技術的な検証を記録するという当ブログの趣旨からは、安易な本流に身を委ねず、難しそうでもハイスペックに挑戦してこそ本懐であろう。
管理人みたいなへそ曲がり以外の方には、無難にGmailのSMTPあたりをおすすめしておく。
どうせメールへリプライするときはメーラーで書くのだからね。
なおSendGridプラグインの導入手順は、また別記事にて。
コメント