特定アドレスからのメールを鍵付きSlackへ無料プランで通知する

チームでSlackを用いているのですが、特定の人からのメールをチームで共有するためメールアドレス指定でSlackに投稿する仕組みが欲しいと要望が挙がり、作りました。
選定の経緯も含めてまとめます。

#構築手段
##1)Slack公式・メールアドレスAPI
一番シンプルな手法です。
ただし、有料プランの**スタンダードプラン以上**である必要があるので、フリープランでは使用できません。
スタンダードプラン以上の方は、迷わずこちらを使いましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/3ed033f7-cbf6-b505-886d-ddee0c07d164.png)

##2)Webアプリ連携サービスを利用
今回紹介する手法です。
異なるソーシャルメディアやプラットフォームを連携させるWebサービスです。
Slack、Gmail、Googleドライブ、Evernoteといったプラットフォームの仲介役をしてくれます。

例えば設定すると、次のようなことができます。
・Gmailを受信したらSlackに投稿
・Gmailで送付されたメールに添付物があればDropboxに保存
・Gmailのスター付きメールをEvernoteに自動保存 
・スプレッドシートが更新されたら、Slackに通知

有名どころとして、**IFTTT(イフト)**と**Zapier(ザピアー)**があります。
IFTTTはフリー、Zapierは5つまで無料で利用は可能です。

私の中では、IFTTTが有名だと思ってたのですが、Zapierの方が圧倒的に対応サービス数が多く、連携のタイムラグが短かったりと、IFTTTの上位互換的な位置づけのようです。
実際に使ってみて使いやすかったZapierで説明します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/deefe3f2-a2ca-9c94-66d6-e3ae65b60629.png)

#簡単な構成説明
**チームで共有することを前提としています。**
・Zapier連携用のGmailのアカウント作成
　→　メンバー間でSlack共有したいメールを個別に当該Gmailに転送設定を行う。
・Gmailアカウントで受信ラベルを作成
　[設定例]
　(1)お客様Aのドメインから受信　ラベル「お客様A」　⇛　お客様Aルームに通知
　(2)タイトルに【監視】がついている場合、　ラベル「監視」　⇛　監視ルームに通知
・Zapier側で特定のラベルに応じて、Slackに投稿する設定を行う。

#Gmail手順
##新しいラベルの作成
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/025de9d4-8cb8-dddd-7fbd-f80cffac6dcc.png)

##Gmailの歯車(設定)画面からフィルタを新規作成
@hogehoge.comから受信したら、hogehogeラベルを付与する画面です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/2ee30d38-6003-68e2-5ef6-5e0771a0cabd.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/99acacf0-c9c6-b323-8318-7ddd1e74d818.png)

#Zapier手順
##Zapierアカウントを作成
facebookログインなどでさらっと作ってください。
https://zapier.com/
##ZapierWorkFlow作成
GmailとSlackを選択
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/4802d449-62e8-e3d3-52ad-370fba679536.png)

新しいラベル付きメールを受信した際にSlackに投稿します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/f3e5ab37-4165-74dd-1c58-372aa21104d9.png)

新しいラベル受信の設定開始！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/cdc38361-fea4-e04b-8f1e-a86810cafdb5.png)

左側のバーを見て、状態がわかりやすいです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/71dcdd97-4600-11a2-2044-00fa827f0f4d.png)

次画面へ
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/cf954ebb-390b-a2d8-23e9-62d97a2745f3.png)

Gmailアカウントとの接続
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/aeba18ed-b38b-357f-ef67-70f954b92c32.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/348d5032-52dd-4c68-f1a9-2a84ed556b8a.png)

hogehogeラベルを受信した場合に設定
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/a70c1de5-cb73-6083-4b65-27a6fdeb1856.png)

テストを始めます。
受信メールがない場合は、エラーとなるので、「Skip Test＆Continue」します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/3a041a3a-280a-c232-8220-242926efbaac.png)

Slack側の設定をします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/a142b1b8-1078-a481-4087-d99df6df24ec.png)

Slack側もConnectします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/febf6304-4fc4-3c36-6e45-79547196a9cf.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/5093de1d-b7ee-497f-35d0-6643286ccbe1.png)

Channelを選択します。
鍵付きSlackの場合は、「Use a Custum Value」を選択して、ChannelIDを入力します。
ChannelIDは、URLでいくとmessagesとconvoの間の9文字の文字列です。
https://hoge.slack.com/messages/G86NBHOGE/convo〜
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/1807a020-eca3-230f-8c87-9b31db1aec1d.png)

以上です！