Slack便利(なん)です(よ)ね?私の職場では定着せず自然消滅しましたが…

そんな素敵な、Slackをはじめとしたビジネスチャットツール。 UIも使いやすいし、他のシステムとの接続がしやすいのも魅力。

プライベートでも使えると思うんです。今回はガラケーメールとのやり取りをSlackでできるようにしてみました。

追記:

プライベートチャンネルで同じことするようにしてみました。

作るもの

特定の1名とのメールの送受信をSlack上でできるようにする。

グループ(複数ToとかCCとか)のやり取りは考慮しておりません。

なぜ必要?

相手がガラケーだろうと、普通にメールでも良いんじゃね?と思うかもしれ混ぜんが、以下のような特殊な事情があるんです。

  • いつもやり取りするお相手(ヨメさま)がガラケーしか使えない。
  • メールを小分けにチャット感覚で送ってくる
    • **やっといて~ ← 仕事中ですが。。。
    • あ、やっぱり〇〇もお願い~ ← 追加注文
    • そー言えば××はほにゃららになったー ← 無関係な話を挟む
    • **やるときは△△にしてねー ← いくつか前の話に追加事項

的な感じのメールを散発敵に送ってきます。

  • 返信絶対使わないマン
    • せめて返信で送ってくれればメーラーのスレッドが効くのに、すべて新規にメール作って送ってくる。
  • 仕事中だろうが構わず送ってくる
  • すぐ返信しろとか言ってくる

そんな事で、メッセージのやり取りが見やすくて、通知がすぐ来て、PCでも見れる環境が欲しかったのです。(奴隷感)

使うもの

  • Slack (専用のワークスペースがあるといいと思います)
  • Gmail (お相手にはGmailのアドレスをお伝えします)
  • Zapier
  • GAS(Google Apps Script)

すべて無料でそろいます。いい世の中になったもんだー。

メッセージの流れ

ガラケー→SlackはZapier経由で、Slack→ガラケーはGASを使ってます。

すべてPushでポーリング的な処理を入れないのがポイントです。

ガラケー→Slack

受信用チャンネルの作成(Slack)

Slackで送受信用のチャンネルを作成しておきます。”Outgoing Webhook”はprivateチャンネルだと動かないようなので、publicで作ります。ここでは#garakeiで作りました。

publicになってしまうので秘密を守りたい方は専用のworkspaceを作るといいと思います。

プライベートチャンネルで同じことできます。

ZapierでZap作成(Zapier)

Zapierにログインして”Make a Zap!“でZapを作ります。

トリガー

トリガーには Emailの”Inbound Email”を使います。Gmailではありません!

後で、ここで作られたアドレス(以下:Zapierアドレス)にgmailからの転送設定をします。

アクション

続いてアクションの追加でSlack→Send Channel Message(必要に応じてアカウント接続の設定)をします。

テンプレートの設定も観ればわかるレベルかと。

Channelには先ほど作ったチャンネル(#garakei)。

Message Textには”Body Plain”か”Stripped Text”を選んどくといいと思います(両者の違いは不明)。

後はデフォルトのままです。Send as a bot?はよくわからないんで”Yes”にしときました。

最後にテストを実行すると#garakeiに投稿されます。

Gmailで転送設定(Gmail)

説明不要な気もしますが、Gmailで転送設定します。

Gmailにログインして、「設定」→「メール転送とPOP/IMAP」→「転送:」→「転送先アドレスを追加」をクリック。

Zapierアドレスを入力します。「OK」→「続行」とすると、Slackにメッセージが投稿されるので、確認コードを入力するかリンクをクリック。

次はフィルタの設定。Gmailの「設定」→「フィルタとブロック中のアドレス」でご希望のアドレスからのメールをZapierアドレスに転送するようにします。やり方は省略。

ここまでで ガラケー→Slack の設定は終了。

Slack→ガラケー

こっちのルートはGASを使うのでコードを書きます。

メール送信用WebHookの作成(GAS)

Google Driveにアクセスして、「新規」→「その他」→「Google Apps Script」を選択。 ここでプロジェクト名を変更しておきます。

コード.gsに以下のようなコードを書きます。 要編集のユーザー名とmail_map部分は適宜書き換えてください。。 ファンクション名は必ずdoPostじゃないとダメみたいです。

WebHookの公開(GAS)

「公開」→「ウエブアプリケーションとして導入」

プロジェクトのバージョンは”New”、自分で実行、アクセスできるユーザーを全員(匿名含む)にします

「承認が必要です」的なことを言われたら、ひたすら許可します。

「現在のウェブ アプリケーションの URL」が発行されるので、これをどっかにメモしときます。(後でも見れますが)

Outgoing Webhookの設定(Slack)

SlackのワークスペースにAppを追加します。サイドバーのAppのとこの+ アプリ検索画面が出るんで、”Outgoing Webhook”を検索してインストール。

(たぶん)設定画面になるので、チャンネルに#garakei、URLにGASで作成したアプリのURLを設定。

この時表示されるトークン(Webhook Token)をコピーしておきます(後でGAS側に設定します)。

GASにトークンをセット(GAS)

GAS編集画面から「ファイル」→「プロジェクトのプロパティ」→「スクリプトのプロパティ」で行を追加、名前に”OUTGOING_WEBHOOKS_TOKEN”、値にWebhook Tokenをセットします。

以上で Slack→ガラケー の設定は終了。

送ってみる

#garakeiでなんか入れると、GASのgarakei:'someone@example.com',で設定したアドレスにメールが届くはずです。

 

そもそも

相手がスマホ使ってくれてればこんなん要らないんですけどね。

ハングアウト使いたい。LINEよりいいと思うんですけど、自分だけ?

MS Teams(おまけ)

MSのTeamsでも同じような仕組みができます。こっちの場合はチャンネルに直接メールアドレスを振れるので、Zapier要らずです。

が、webhookを反応させるためにいちいちメンションを送ってやらなきゃいけません。面倒なんで不採用です。

UIもSlackの方が使いやすいような気がします。