メールをトリガーにした処理がかんたんにかけるNode.jsの「inbox」

Date
February 02, 2014
Tags
Node JavaScript

今回ゎとてもひさびさに、メール受信時にその内容を処理するってゅー、
ぃゎゅる空メール登録みたぃな、ぁれが必要になりました

まじ大昔にqmailとphpのパイプでそのへんがんばってたことがぁって、
そのゃりかたゎなんとなく今でもぉぼぇてるんですけど、
Node.jsでIMAPでとてもかんたんに似たょーなのがかけたから、
ゃりかたをちょっとかきます

IMAPを扱ぅNode.jsライブラリ

node-imapとゅーのがメジャーっぽぃんですけど、
けどinboxのほーが、ぱっとゎかりゃすかったから、
こっちをっかってみることにしました

inboxをっかってみる

まずゎインストールですけど、むずかしぃことゎなにもぁりません

npm install inbox --save

それで、IMAP接続して、メールボックスを開くょーにします

https://gist.github.com/ayapi/8770396#file-imapandsmtp-js-L1-L16 https://gist.github.com/ayapi/8770396#file-imapandsmtp-js-L44

で、inboxゎ、ぁたらしぃメールがくると、
newイベントをemitしてくれます

https://gist.github.com/ayapi/8770396#file-imapandsmtp-js-L1-L16 https://gist.github.com/ayapi/8770396#file-imapandsmtp-js-L42

たったこれだけでかんたんです

ほかにも、このままだとメールがひたすらたまってぃっちゃぅから、
消す処理とかゎ必要なんですけど

ぉまけ:Nodemailerで返事をだすょーにしてみる

受信&保存するだけだと「は?なに?」ってかんじなので、
てきとーにSMTPで返事をだすょーにしてみます
inboxと同じ作者さんでNodemailerてゅーメール送信のライブラリがぁります

npm install nodemailer --save

https://gist.github.com/ayapi/8770396#file-imapandsmtp-js-L1-L16

かんたんすぎじゃん\(^o^)/

まとめ

このょーに、fromアドレスを拾ぅだけでぁれば、とてもかんたんです

IMAPに対応してるメールアカウントがぁればそれでょくて、
メールサーバー側のほーの設定が特にぃらなぃから、ぉ手軽なかんじがします

更に突っ込んでぃくなら

もしたとぇばメールの内容でブログを投稿するみたぃな、
メールのタイトルゃ本文の内容をなにかしょーとするなら
まぁもぅこれぉ決まりなんですけど、
メールのストラクチャのパーシングと、
日本語特有の文字エンコード関係の処理に
果敢に立ち向かぅ必要がぁりますので、多少ハードルゎぁがります
気が向ぃたらそのへんも、今度かくかもしれません

なんかphpにゎマルチバイト文字列の変換の関数が
しっかり用意されてたのがょかったなーって思ぃますけど、
Node.jsゎそのへんちょっとたぃへんかも