チャットワークユーザー必見!チャットワークをメールと連携させて未読をなくす方法

2015年4月27日。

ビジネスチャットシステムを展開するChatWork株式会社が、GMOインターネット(9449)の子会社であるGMOベンチャーパートナーズから、第三者割当増資にて3億円の資金調達をしました。

チャットワークは、既にKDDIとも業務提携をしており、個人から官公庁まで、約6万6000社、世界183カ国で利用されている人気のビジネスツールです。

私も、普段の業務にチャットワークを使っており、その利便性はとても優れていて、もはやチャットワーク無しには仕事になりません。

社内及びクライアント様との情報伝達は、対面会話以外の情報伝達の99%がチャットワークを利用したものとなっており、チャットワークのキャッチである「メールの時代は終了しました」にほぼなっています。

しかし、どれだけチャットワークを使っていても、100%にはならず「ほぼ」止まりなのです。

その原因は、クライアントやお客様など、全ての人がチャットワークを使っていないため、メールが無くならないことにあります。

私も、お問い合わせメールやメーリングリストからの配信などは毎日チェックしていますし、nagiosなどの監視プログラムからiPhoneにプッシュされるメールによって、トラブルが起こったことを気付かせてくれます。

また、チャットワークはブラウザ型のため、緊急な用件のメールが入ってきていてもメーラーを見ていなくて気が付かなかったり、複数の社員宛に届いたメールの対応を誰がしているのか分からなくなったりと、情報分散によるロスはどうしても発生してしまいます。

せめて、届いたメールがチャットワークに通知されれば、「あ、こんなメールが届いている!」という気づきにはなりそう…と思い、実際に通知をしてみると、非常に便利で、もっと早くしておけば良かった…と思ったのでした。

と、前置きが長くなりましたが、今回は「チャットワークとメールの連携」ということで、届いたメールをチャットワークに投稿する方法についてblogにまとめてみたいと思います。

 

まずはサーバの確認

チャットワークに送られてきたメールの内容を通知するために、メールを受信したらプログラムが動くようにする必要があります。

VPNで自分で作ったサーバや、専用サーバとして自分でroot権限などがある場合は問題ありませんが、レンタルサーバの場合、その機能を利用できない場合があります。

私が確認したところ、さくらインターネットのレンタルサーバでは利用が出来るようですが、国内最大級「GMOクラウド」のレンタルサーバーなどでは利用できないようです。
(参考: メール受信でプログラム(PHP, Perl など)を動かしたい。

なお、gmailやhotmailなどのフリーメールアドレスを使っていたり、自分の使っているサーバではプログラムの実行ができない場合でも、さくらインターネットのレンタルサーバのようなサーバや、VPSサービスなどに転送して、転送先のサーバ内で動作させることで回避することもできるので、すぐに諦めずに、利用できるサーバが無いか確認をしてみて下さい。

 

APIキーを取得する

チャットワークでは、2015年5月16日現在、プレビュー公開ではありますが、APIの提供がされています。

APIキーの取得に関しては、管理者が事前にAPI利用の申し込みを行わなければなりません。

チャットワークAPI

申し込みが完了し、APIが利用可能になると、メールにて通知が届きます。
(チャットワークに通知でも良いんじゃないだろうか?というツッコミは置いておいて)

なお、5月16日(土)9時55分申し込みをしたところ、18日(月)の10時45分に「利用開始のお知らせ」メールが届きましたので、約1〜2営業日で、申し込みの受付〜設定までしていただけそうです。

そして、APIを利用するために、個人個人に割り振られるAPIトークンを取得します。

取得方法は、「認証方式について」を参照して下さい。

なお、この紹介ページにも書かれていますが、

APIトークンは使用することでチャットワークの利用データを自由に閲覧、編集、操作できるため、第三者に開示しないよう取り扱いには十分ご注意ください。

とあるため、現在の所、チャットワークAPIを利用したwebサービスを作ることが出来ません。

現在、開発がされている「OAuth 2.0」が提供されれば、私もチャットワークを使ったwebサービスを何か作ってみたいと思っています。

 

投稿先を確認する

届いたメールをどのチャットに投稿するのかを指定するため、投稿先のIDを確認します。

my_chat

IDは、投稿をしたいチャットを開き、URLに付いている/#!rid の後の数字が投稿先のIDとなります。

たとえば、マイチャットに投稿をしたい場合は、マイチャットを選択し、そのURLに付いている/#!rid の後の数字が投稿先のIDとなります。

 

プログラムを用意する

APIトークン、投稿先IDの2つが用意できれば、下記のPHPプログラムの該当部分に、それぞれの値を入れたあと、mail2cw.php など、任意のファイル名で保存します。

なお、このプログラムは、PHPで書いており、尚且つ PearライブラリのMail_MimeDecodeを利用しています。

Mail_MimeDecodeがインストールされているかどうかを、サーバ会社などにあらかじめご確認していただき、もしされていない場合には、PEAR パッケージマネージャの取得とインストールなどを参考に、独自にインストールして下さい。

保存したファイルを、メールを受信しているサーバにFTPなどでアップロードします。

アップロード先は、webページが公開されているディレクトリ以外の方が無難です。

例えば、/home/admin/www/ にindex.php などのwebのTOPページが保存されている場合、 /home/admin/ のディレクトリに置いておけば、外部からこのファイルにアクセスが出来ないため、外部から不要にアクセスされることがありません。

 

プログラムにメールを渡して動作させる

先ほどのプログラムは、メールの内容をチャットワークに投稿するプログラムですが、サーバにファイルを置いただけでは動作をしません。

動作をさせるために、メールを受信した際に「そのメールをプログラムに送る」という設定が必要になります。

設定方法は幾つかありますので、可能な方法で記述をして下さい。

なお、以下、アカウント(メールアドレスの@より前)をadmin とし、プログラムを設置したディレクトリを /home/admin/ファイル名を mail2cw.php とします。

実際に記述をする場合は、ご自身のアカウント名、ディレクトリ名、ファイル名に読み替えて下さい。

1.サーバの /etc/aliases を編集できる場合

telnetやsshでサーバにログイン出来る権限がある場合には、vi コマンドなどで、/etc/aliases を開き、下記のように記述をして下さい。

記述した内容を適用するために、root権限で newaliases を実行します。

 

2.コントロールパネルなどで、設定が出来る場合

webmin

コントロールパネルで、プログラムに渡すように設定が出来る場合は、プログラム転送として、下記のように記述をします。

 

3.サーバのメールディレクトリにアクセスして.mailfilterに記述をする

ftp_dir

先に紹介をしたさくらインターネットのレンタルサーバでは、自分のメールアカウントのmaildirディレクトリに、.mailfilterというファイルを置くことが出来ます。

このファイルに、下記のように記述をすることで、届いたメールをプログラムに渡すように設定することが出来ます。

なお、1〜3の全てをする必要はなく、いずれか1つの方法で記述できれば問題ありません。

 

これで、下準備は整いました。

それでは、admin@ドメイン 宛にメールを送ってみましょう。

全ての設定が出来ていれば、送信したメールの「タイトル」「ユーザー名とメールアドレス」そして「送信内容」が、チャットワークに投稿されるのが確認できるかと思います。

 

条件を決めてチャットワークのタイムラインに投稿したい

さて、基本設定が完了したところで、ここから少しカスタマイズをしたいと思います。

通常、1つのメールアドレスには、複数の場所や用件が届くのが一般的で、届く全てのメールをチャットワークに投稿してしまうと、結局、情報が埋もれてしまい、便利なツールが不便になってしまいます。

また、自分宛に届くメールでも、ccに自分が入っているだけで、自分が担当者ではない場合は、直接担当者がメンバーにいるチャットに投げたいという用件も出てくるはずです。

そのような、条件に応じたカスタマイズを3つほど例に挙げてみたいと思います。

 

CASE 1 特定のメールアドレスからの内容だけ投稿したい

特定クライアントからのメールや、お問い合わせ専用のメールアドレスからの転送、また、GMOクリック証券からの約定通知など、送信元が確定しているメールだけをチャットに投稿したい場合は、上記のプログラムに、送信先がメールアドレスかどうかを判断する条件分岐を入れるだけです。

例えば、sec@sec.click-sec.com のアドレスからのメールだけを振り分けたい場合は、下記のようにします。

また、特定のドメインだけを対象にしたい場合には、$addressに、@sec.click-sec.comを入力することで、ドメインでのマッチングとなります。

 

CASE 2 特定のタイトルだけを投稿したい

通信販売をしている企業であれば「ご注文通知」といった件名であったり、「お問い合わせ通知」といった、特定の件名でのメールだけをチャットワークの特定のチャットに入れたいという場合もあるかと思います。

その場合、件名をマッチングによって振り分けます。

例えば楽天市場からの自動返信メールに「楽天ご注文通知」という件名をつけていて、その件名だったら「注文確認チャット」に投稿をしたいという場合は、下記のようにします。

 

CASE 3 CASE 1 + CASE 2 の複合

CASE 1 と CASE 2 で「件名」と「メールアドレス」による条件付けが出来ました。

CASE 3 では、その条件2つをまとめた方法です。

sec@sec.click-sec.com のアドレスからのメールを自分のチャットに、
「楽天ご注文通知」のタイトルメールを「注文確認チャット」に投稿をしたい場合は、下記のようにします。

 

このように、複数の条件分岐を入れる事で、任意のチャットに任意のメールを投稿することが出来ますので、メールとチャットワークを上手く連携させ、情報の一元化を行うことで、仕事の効率化をする事が出来そうです。

今回はPHPでプログラムを紹介しましたが、他の言語でも簡単に実装することが出来るかと思います。

 

なお、チャットワークが「OAuth 2.0」になれば、twitterアプリのようなサービスがどんどん増えてくるかと思います。

今日、紹介したようなプログラムを使わずとも、「条件によって、どのチャットにメールの内容をポストするか」といったメールの振り分けサービスも生まれてくるかも知れません。

また、チャットワーク上で、[mail][/mail]などのタグで囲むことで、チャットワークから直接任意のメールアドレスにメールを送るといった事が出来るようになれば、サポートセンターのようなサービスをチャットワークだけで作れるようになるかも知れませんね。

 


追記 2015年5月20日

チャットワークのオフィシャルアカウントに、このblogを紹介いただきました!
本当は怒られるのじゃないかと、内心ビクビクだったので、感謝です。

コメントを残す

このページの先頭へ