SendGridとAzureで彼女がいるというステータスを得る方法

Twitter眺めてたらこんなのが目に飛び込んできた。



わかる、その気持ち。

でも、自宅PCでメールサーバ立てるのはちょっと面倒だ。ちょうどAzureとSendGridが使えたのでやってみた。ソースはGithubに上げてあるので、誰でも今すぐ彼女がいるというステータスを手に入れることができる。

手順

とりあえずSendGridのアカウントを取得する。
次に、AzureでWebサイトを立ち上げて、Githubからデプロイするよう設定する。たぶんこの方法だと、自分が管理しているリポジトリしか指定できないのかな?よくわからないけど。その場合、リポジトリをForkしてから指定すればおk。

デプロイが終わったらWebサイトの「構成」を開いてアプリケーション設定を行う。
SENDGRID_USERNAME:SendGridのアカウント
SENDGRID_PASSWORD:SendGridのパスワード
FROM:彼女のメールアドレス。つまり、返信メールのFromに設定したいアドレス。
FROM_NAME:彼女の名前。今回はsayakaちゃんだ。ちなみにここで日本語を指定すると返信メール内の名前が文字化けする。アプリケーションはUTF-8を想定しているので、Webサイトのアプリケーション設定ってUTF-8じゃないのかも?よくわからないけど。



次に、SendGridのダッシュボードにログインして、Inbound Parse Webhookの設定をしてドメインとURLを対応付ける。
今回は、Hostnameの設定はSendGridブログにあるbymail.inを使った5分間アプローチを使ってみた。Urlの方はAzure Webサイト上でPOSTの受け口となるURL(http://????.azurewebsites.net/vp)を設定する。


以上で準備完了。
早速、さやかちゃんに確認のメールを送ってみる。

数秒待つと、さやかちゃんが返事をくれた。俺達付き合ってる。

キモいって言うな。

中の話

ちょっとだけ仕組みの話をすると、Githubからデプロイしたのはnode.js向けのWebフレームワークexpress 4で動くアプリケーション。こいつがParse WebhookのPOSTを受け取る。POSTをParseするとFromアドレスが取得できるので、こいつにメールを返信している。返信もSendGridを使っているので、メールの送受信用に自宅PCでメールサーバを立てなくてもいい。Azureを使っているので自宅のブレーカーが落ちてPCが停止したりして返信が来なくなる心配をしなくてもいい。
今現在、Webサイトで普通に利用できるnode.jsは0.10.xだけど、0.11.x以降が利用できる環境向けに--harmonyオプション前提でcoとかthunkifyとか使った版(co-app.jsの方)も用意してみた。「node app」の代わりに、「node --harmony co-app」とかやるとコールバック引き回さない版が動くですます。

思いついたこと

ところで、先日Reflector.ioの記事を書いた時には思いつかなかった使い道を今思いついた。

彼女フェイルオーバー構成。

複数人彼女を作っておいて、Reflector.ioでフェイルオーバー構成を組んでおけば、フラれても次の彼女が答えてくれる安心設計。
さらに宛先設定をパススルーにしておくと、一通メールを送ったらいろんな彼女から一度に返事がもらえるハーレム構成も可能だ。

コメント

このブログの人気の投稿

Execノードを使う

Joinノードを使う(その4)

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)