【#技術書典 宣伝】#C90 の落選結果を Slack で受け取ってみた

【#技術書典 宣伝】企画

今週の土曜日(2016/06/25)に, 「技術書典」という いろんな技術にまつわる同人誌の即売会が開かれる.

私が筆頭の O'Creilly も,喜ばしいことに出展できる運びとなった.

これから宣伝も兼ねて,執筆中に得た知識を書いていきたい.

前回:

ことの経緯

飛ばすひとはこちら

C90 の当落結果が間近に控えていた. なんだかんだ言って受かるだろうと高をくくって, 技術書典で頒布する量も多めに発注しておいた.

コミケの当落速報はメールでくる. もちろん受かるとは思うが,落ちた時には凹んで動けないかもしれない.

しかし,サークルの代表としてみんなに当落結果を伝える義務がある. どうにかして,立ち直れなくともみんなが把握できるようにしたい.

幸いにも,サークルメンバは Slack を活用していて, 執筆の相談などもそこで行っている.

そうだ,メールの内容が Slack にくるように設定してしまおう.

メールを Slack に転送する問題点

Slack には,Email インテグレーションもあるし, IFTTTZapier などのサービスと連携してもよいはずだ. MailClark というものは返信もできるらしい.

しかし,無償のチームでは 10 インテグレーションまでしか登録できない. わたしのチームは既に限界までインテグレーションが追加されていて, Email は追加できない.

自前で組む他の理由は,いろいろ機能をつけたいからだ. 例えば,メールによって bot のアイコンを変えたいとか. そういうことをするには,やっぱり組んでみるのがよい.

本題|メールを Slack に転送する SMTP2Slack

早速作ったものを載せておく.

幸いにも Slack API Tester は登録されていたので自前で bot を組んでいく. Slack API Tester は,万能なので登録しておくとよい.

作るときには, SRARAD/slack-email を参考に作った. Node.js のライブラリである Mailin は, メールをトリガとした bot を作るには手軽かつ便利だ.

使いかた

  1. サーバを用意する
  2. MX レコードを設定する
  3. サーバに Docker と Docker Compose を入れる
  4. Token を手に入れる
  5. git clone https://github.com/3846masa/smtp2slack.git
  6. docker-compose.yml の SLACK_TOKEN を埋める
  7. (任意) PREFIX_REGEXP を埋める
  8. docker-compose up -d
  9. prefix-random@yourdomain.example.com にメールを送ってみる

結果

mailbot

とても良い具合に結果が隠れている. なかなか乙なやつだな.

落選

(´・ω・`)

余談

prefix-random+slack@yourdomain.example.com のように, Emoji の名前を + 以降に入れてあげるとアイコンが変えられる.

slack

メールの転送設定の話

わたしが捨てメアドで愛用している Yahoo! Japan メールは, フィルターによるメール転送ができない.

O'Creilly が使っている Yandex mail では, 転送設定がうまく動くことはすごく稀である.

そういうメールサーバでも,同様のことをするために, 3846masa/imap2slack も作った. docker-compose.yml に IMAP 設定を書き込んで, docker-compose up -d すれば動く.

すべてのメールを転送するようになっているので, 各自でスクリプトをいじるか, 汎用的にしたコードを作って Pull Request とかくれたら嬉しい.

ちなみに,Outlook はメールの転送設定が楽でよい.

まとめ

  • メールを Slack に転送できる便利 bot を作った
  • 落選を落ち込んでいても,情報伝達が行われて便利
  • C90 落選したので委託参加を目論んでいるが,人脈がない
  • メールの転送設定は Outlook が楽でよい

明日も執筆時のノウハウを書いていきますよ!

オクライリーのお蔵入り本もよろしくお願いします. ぼくは Docker Compose のお話を書いています.