TOACHが運営している女子向けビールマガジン hipahipa はherokuというサーバー上でwordpressを使って動かしている。
wordpress on herokuという構成は中々にやっかいで、独自ドメインを使おうとするものならAWSまで使わないといけなかったり、プラグインを追加するときに直接ファイルを落としてきてgitでpushしないといけなかったりと面倒が多い。それはherokuの設計思想上仕方ないし、何より流行りの技術を使ってみたいという単なる好奇心でherokuを使い続けている。かっこいいんだよね、herokuのダッシュボード。
herokuを解説している本はあまりないけれど、amazonを探したらこういうのがあった。筆者はherokuの中の人やRails Girlsの人など多様で確かな顔ぶれ。
先日、hipahipaにコンタクトフォームをつけようとして引っ掛かってしまった。普通、wordpressでコンタクトフォームを付けるときは、Contact Form 7というプラグインを使うのが普通だけれども、そのままでは、wordpressが乗っかってるサーバーを使ってメールを送ろうとする。デフォルトだとherokuからメールを送ることはできないからさもありなん。これを解決するにはherokuでSMTPを使えるようにするか、外部のSMTPサーバーを使うようにすればいい。
※SMTPをググると情報処理試験のページがヒットした。懐かしい〜
wordpressで外部のSMTPサーバーを使うには、WP Mail SMTPというプラグインを使う。前述のとおり、herokuではwordpressのダッシュボードからプラグインをいれることはできない(できるけれど、いずれリセットされる)ため、直接落としてきてpushすべし。
プラグインが入ったらwordpressにログインし、WP Mail SMTPを有効化する。
それからダッシュボードの「設定 > メール」を開き、SMTPの設定をしていく。と言っても設定する項目はそれほど多くないので安心してほしい。
From EmailとFrom Nameは空でOK。空のwordpressに設定したメールアドレスと名前を使う。
※つまり、コンタクトフォームから送ってきた人のメールアドレスが自分のものになってしまうわけだけれど、Contact Form 7で作るコンタクトフォームにはデフォルトで送信者のアドレスが書かれるようになっているので大丈夫。
今回はgmailのSMTPサーバーを使ったので、入力内容は画像のとおりになる。your-gmail-addressとyour-gmail-passwordは適宜書き換えてください。
ここまで終われば実際にコンタクトフォームからメールを送ってみる。ばっちり送れているはずだ。