42
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Slack から メールを送れるようにしてみた ~その1~

Last updated at Posted at 2017-05-13

#シリーズ目次

  • Slack から メールを送れるようにしてみた ~その1~

概要

この分野では門外漢の私が、
「遠方の方とコミニケーションを図るならSlack がいいですよ」と言われ
2~3ヶ月使ってみました。
...なかなか将来性があるのではないかと思います。

私の業界は email が主流です
email → slack に転送は、良くある事例っぽいですが
slack → email は 実現した例が見つかりませんでした。

なので、Slack からメールを送れるようにしてみようと思います。

#環境条件
今回の企画には下記のアカウントが必要です。

それぞれ 使い方 や tips などは ここでは省略します。

#仕組み
この記事は、zapier の使い方といっても過言ではありません。

zapier には

  • slack のメッセージ送信を検知する機能があります。
    (他の iFTTT, Mmicrosoft Flow には無かった)
  • メッセージを javascript か python で 編集することができます。

s1.png

以上より
1. slack の特定のチャンネルでメッセージ送信を検知

メッセージ は 2. で扱いやすいように json 形式 で slack に入力する

2. メッセージを gmail 送信用に javascript で 編集

3. gmail で 送信する

#作成手順
zapier の使い方を説明していきます。
以下の手順は zapier の操作説明です。

##1. slack の特定のチャンネルでメッセージ送信を検知

1.1 zapier にログインして Make A ZAP をクリック

z1.png

1.2 Choose a Trigger App で 一連の きっかけ となる動作を設定します。

今回は slack を選択します。
z2.png

1.3 slack の動作の中で どの動作をきっかけとするか選択します。

今回は New Message Posted to Channel を選択します。
z3.png

1.4 zapier が slack のアカウントをチェックします。

z4.png

1.5 きっかけ となる動作 が slack の どのチャンネル対する入力なのか

チャンネル を選択します。(下の例では #メール というチャンネルを対象にしています。)
z5.png

1.6 zapier が テストを開始します。

z6.png

1.7 待機状態に入る

z7.png

1.8 slack で 下記のメッセージを 選択したチャンネル(下の例では #メール というチャンネル)で下記のメッセージを入力します。

18.png

Message
{
   "to": "***@*****.***",
    "cc": null,
    "bcc": null,
    "subject": "ここに件名を入力",
    "body": "ここにbodyを入力",
    "attachment": 123
}
  • 注意) 値は " ダブルクォーテーションで囲むこと

1.9 zapier で テスト成功のメッセージが出たら Continue で次の手順に進みます。

z9.png

##2. メッセージを gmail 送信用に javascript で 編集

2.1 Choose an Action App で javascript で 編集する動作を設定します。

今回は code を選択します。
z10.png

2.2 code を どの言語で記述するか選択します。

今回は Run javascript を選択します。
z11.png

2.2 Set up Code by Zapier Run Javascript で下記のコマンドを記述します。

z12.png

  • Input Data

What input data should we provide to your code (as strings) via an object set to a variable named inputData?

z13.png

  • Code

Warning! This is an advanced action! Uses Node 4.3.2. Please read the Code documentation for more information.

Code
var json = JSON.parse(inputData.data);
var to_mail = (json.to.match(/([\w._-]+@[\w._-]+\.[\w._-]+)/gi) || [])[0];

output = [
  {
    to : to_mail,
    cc: json.cc,
    bcc: json.bcc,
    subject: json.subject,
    body: json.body,
    attachment: json.attachment   
  }
];

2.3 zapier で テスト成功のメッセージが出たら Continue で次の手順に進みます。

z14.png

2.4 Add a step をクリックして gmail で 送信する 動作を追加します。

z15.png

##3. gmail で 送信する

3.1 Choose an Action App で メールを送信するする動作を設定します。

今回は gmail を選択します。
20.png

3.2 gmail の動作の中で どの動作をするか選択します。

今回は Send Email を選択します。
21.png

3.3 zapier が gmail のアカウントをチェックします。

22.png

3.4 gmail の各項目にパラメータを設定します。

右の + ボタンから 手順2. の値を選択できるようになっているはずです。
ここで to とか subject とか 選択肢になければ、どこか間違ってます。
23.png

設定例は下図の通りです。
24.png

3.4 zapier で テスト成功のメッセージが出たら Finish で終了です。

30.png

メールの送信方法

slack の 指定した チャンネルで 下記のように記述するとメールを送れます。
18.png

Message
{
   "to": "***@*****.***",
    "cc": null,
    "bcc": null,
    "subject": "ここに件名を入力",
    "body": "ここにbodyを入力",
    "attachment": 123
}
  • 注意) 値は " ダブルクォーテーションで囲むこと

とりあえす、メールは送れることを確認しました

使い勝手は、これからのブラッシュアップにかかっているかな

次回

使い始めて 2~3ヶ月なので
これ以外の tips はほとんど知らないです。
 

  • 添付ファイル を付けられるようにする
  • 複数人に同時に送信する
  • 返信時どうする
  • 連絡帳と同期して アドレスの入力を省力化する

など改良のアイデア募集中です

42
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?