Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

メールを投げると動くbotをどうやって作るか

メールで動作させられるbotを作ろうと思ったが、「メール bot」とかで検索してもSPAM関連の記事ばかり表示されて検索できない。*1どうやって調べればいいものか困っている。

なぜmail-driven bot

処理を定型化して楽をしたいことはよくある。普通ならばそのためにWebサービスを立ち上げればよいのだが、そういうガワの開発に時間をとられるのはいやだ。

メールはどこからでも送信できる。テキストのやり取りであればそれで十分だ。パラメータを送信したら勝手に処理して返信してくれたらいい。少し昔のバッチ処理のように。そういう意味で原始的なメールでの自動化は、シンプルでとても便利なのだ。シンプルイズベストである。

いつか使おうと思って作成したコードも、いざというときに使えなければ役に立たない。メールを介してコマンドラインを叩く感覚でさくっとコードの再利用ができればいいのにと考えている。REST APIほどではないにしてもメールはプログラマブルな柔軟性があると思う。

自分でやるしかないのか

このやり方に定石というものがない場合は一からサービスを作ることになる。次のような手間が必要になるだろう。

  1. まずは自前のサーバにアカウントを作成してそこを受信用アドレスにする
  2. 定期的に(もしくはメール受信の機構に何らかの形でフックして)メールを読むプログラムを書く
  3. メールの構文を分解して本処理プログラムとの仲立ちを行うプログラムを書く
  4. 実際にテキストを処理してメールを投げ返すプログラムを書く

留意する点

メールはどこからでも送信できるので自分がSPAMの踏み台にならないようにしなければならない。このためにいくつかの対策が考えられる。

  1. メールはPGPで暗号化し電子書名をつける(PGPの認証機構が必要)
  2. メールにOTPを添付する(OTPの認証機構が必要)

先人がいるはず

メールでこういった処理をするということは昔から行われてきたはずだ。RMSwgetしたWWWサイトをメールで送らせている*2というではないか。

こういったメールによる処理がある程度メジャーなものであれば、そこそこの資産がWWWに存在するはずなのだが、検索能力がないので発見できていない。IRCbotがあるくらいなのだから、メールbotOSSくらいありそうなものだが「mail bot」ではいかんせん間が悪すぎた。

おわり

ただ検索しにくいだけの言葉・概念がそのままネットから締め出され、あたかも存在しなかったかのように扱われてしまう(Google八分?)ことが将来起きるのだろうか。検索サイトは未来の知の支配者になるのだろうか。

*1:専門用語が微妙な意味で一般人に再定着してしまうと検索の際面倒だ

*2:"I fetch web pages from other sites by sending mail to a program (see git://git.gnu.org/womb/hacks.git) that fetches them, much like wget, and then mails them back to me." How I do my Computing

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?