こんにちは。業務では絶賛Slack似オープンソースのチャットツール「Mattermost」を使っている杉本です。
世の中Slakcだー、Teamsだー、ChatWorkだー、とチャット系ツールの隆盛が止まりませんが、なんだかんだでメールが無くなったか? と言えばそうでもないようです。
そんな中、最近株式会社フロッグポッドの小林さんから「POP経由でメールを取得して、レポートにまとめたいお客さんが居るんだけど、どうにかできませんか?」という問い合わせをもらいました!
CData はこういう技術検証もののご相談大歓迎でして、さっそく CData Excel-Addin で実現する方法を検証しましたので、どんな風に実現できるかご紹介したいと思います!
実現するにあたって気になること
通常、例えばGmailだと連絡先をCSVエクスポートする機能はあったりするんですが、受信メールのデータをExportする機能はなかなか見当たりません。
もちろん、GmailだとAPIが公開されているので、もう少し手軽に開発できるかと思いますが、特にAPIが提供されていないメールサーバー、POPやIMAPといったプロトコルは各プログラミング言語のライブラリでうんちゃかする必要があるのが、ネックですね。
でもそこまでするのもなかなか割に合わない! というシチュエーションも多いかと思います。そんな方に向けてこの記事ではノンプログラミングかつExcel操作だけで手軽に実施可能な方法をお伝えしたいと思います。
必要なもの
・CData Excel-Addin for Email
・POPメールアカウント
今回はPOPサーバーを用意するのが面倒だったので、Gmailの情報をPOP経由で取得してみます。基本的にアプローチは変わりません。
実施手順
事前に以下のURLから「CData Excel-Addin for Email」トライアルをダウンロードし、インストールしておきます。
https://www.cdata.com/jp/drivers/email/excel/
以下のような画面で「次へ」を進めていくだけで大丈夫です。
インストール後にExcelを立ち上げると、「CData」というタブが追加されているので、ここから「取得元Email」をクリックし
各種必要な情報を入力します。Gmailの場合は以下の情報を入力すればOKです。
User:対象のGmailアドレス XXXX@gmail.com(独自ドメインの場合でも可能)
Password:Gmailのパスワード
Protocol:今回はPOPを指定
Port:995を指定
Server:pop.gmail.com を指定
接続後、以下のInboxテーブルが表示されるので、そのままOKをクリックすれば
以下のようにGmailで受信しているメールデータをPOP経由で取得可能です。
Emailの本文を含める場合
初期状態ではEmailの本文が含まれないので、取得したい場合は以下の「Include Message」プロパティを設定するか
Where句でIdを絞り込めば、本文が取得できます。
Select * from Inbox where Id = XXX
GmailにPOP経由で接続できない場合
初期状態ではGmailのセキュリティ設定が高度なため、接続できないと思います。
その場合はGmailのアカウント設定からアプリ許可設定を調整してみてください。
なお、POPじゃなくて本当にGmailに接続したい場合
その場合は、CData Gmail をおすすめします。
https://www.cdata.com/jp/drivers/gmail/excel/
こちらのほうがAPI経由で取得しているので、POPプロトコルよりもパフォーマンスよく、柔軟にメールが取得できます。
用途や環境に応じて、選択してみてくさい。
最後に
CData Driverでは、各Driverを使ってこんなことできないの? あんなことできないの? といった質問大歓迎です。
内容次第では技術検証のサポートもできますので、是非あんなデータソースでああしたい、こんなデータソースでこうしたい、といったご相談をお寄せ頂ければと思います!