電子メールの添付ファイルを自動でFleekdrive にアップロード:CData Arc

by 杉本和也 | December 22, 2022

こんにちは。CData Software Japan リードエンジニアの杉本です。

今回の記事では企業向けオンラインストレージサービス Fleekdrive とMFT・EDI連携ツールのCData Arc を組み合わせて、メールで受信した添付ファイルを自動的にアップロードする仕組みを紹介したいと思います。

Fleekdrive とは?

Fleekdrive は企業向けオンラインストレージサービスです。

https://www.fleekdrive.com/

インターフェースの使いやすさや管理機能の豊富さなども特徴ですが、電子帳簿保存法オプションなども提供されており、書類の電子化、契約書周りのDXにも役立つ機能が提供されています。

CData Arc とは?

CData Arc は、CData 製品の中で「自動化/Automate」を担うデータ連携ツールです。「B2B 連携をもっとシンプルに」をコンセプトに、ファイル連携 & DB 連携 & API 連携といったB2B 連携に必要なすべてをノーコード・ローコードでつなぐことができるプラットフォームです。

https://jp.cdata.com/arc/

この記事のシナリオ

この記事では電子メール(Gmail・IMAP)で受信したメールに含まれる添付ファイルを自動的にFleekdrive に連携、アップロードする方法を紹介します。

ファイルのアップロードには、Fleekdrive で提供されているファイルアップロード用API を用いて連携しました。

事前準備:CData Arc 製品のインストールとナレッジ

事前にCData Arc を任意の環境にインストールしておきます。以下のリンクから30日間のトライアルが取得できます。

https://arc.cdata.com/jp/trial/

CData Arc のインストールはこちらを参考にしてください。
https://jp.cdata.com/blog/arcesb-install-windows

CData Arc を使い始めるときは、こちらも参考にしてください。
https://arc.cdata.com/jp/start/

CData Arc に関するナレッジは、こちらにまとめています。あわせて参考にしてください。 https://arc.cdata.com/jp/kb/

事前準備:メールサービス

CData Arc には、IMAP メールサーバーからメッセージを受信できるEmail Receive コネクタが備わっています。

この記事では、IMAP メールボックスとしてGmail を利用しました。

自動処理したいINBOX(受信トレイ) には、添付ファイル付きのメールが届いています。これをCData Arc 経由でFleekdrive に取り込んでいきます。

事前準備:Fleekdrive

Fleekdrive 側には予め添付ファイルをアップロードするためのスペースを作成しておきました。

なお、連携するときには対象のスペースのspaceIdが必要になります。spaceidは「リンクを取得」から

以下のように「spaceId=XXXXX」のXXXXXの部分で確認できます。この値を予め控えておきましょう。

連携フローの作成

それでは実際に連携フローを作成していきます。 このシナリオで作成する連携フローは以下のような流れになっています。

 

コネクタ

内容

1

Email Receive

メール(添付ファイル)の受信・IMAP ヘッダー(From)からメールアドレスを抽出してメッセージヘッダに設定

2

Script

FleekdriveのAPIを実行して、ファイルをアップロードする処理をScriptとして記述しています。

Email Receive コネクタの設定

最初にフローの起点となるEmail Receive コネクタを配置して、メール(添付ファイル)受信の設定をします。コアカテゴリから「Email Receive」コネクタを選択して、フローキャンバスへ配置します。

最初にメールサーバ接続の設定をします。この記事ではGmail を利用しますので、Gmail へIMAP での受信を設定します。

IMAPの接続情報を入力後、ユーザアカウント認証の設定をします。この記事では、基本認証を利用していますが、もちろんOAuth 2.0 での認証にも対応しています。

次にダウンロードに関する設定をします。この記事では、対象メールの添付ファイルを取得したいので、ダウンロードの種類を「添付ファイル」に設定します。

スクリプトコネクタの設定

続いて、Fleekdrive のファイルアップロードAPI を利用するためのスクリプトコネクタを配置します。

CData Arc では Arc Script と呼ばれる独自のスクリプト言語を利用することで、様々なAPI との連携を実装することができます。

こちらで利用しているArc Script について詳しく知りたい方は、ぜひこちらも参考にしてください。

https://arc.cdata.com/jp/kb/articles/arcscript-quickstart.rst

今回はサンプルとして対象のスペースにファイルをアップロードする簡単なスクリプトを作成しています。


以下のスクリプトを利用して、接続してみてください。なお、接続のために利用するFleekdriveのUserId、Password、SpaceIdを予め以下の部分のValueを変更し、指定しておきます。

<api:set attr="UserId" value="XXXXX"/>
<api:set attr="Password" value="XXXX"/>
<api:set attr="spaceId" value="SPACE_XXXXXX_XXXX"/>

<arc:info title="Custom Script" desc="This script will be executed when a file is processed.">
  <input name="ConnectorId" desc="The id of this connector." type="text" />
  <input name="WorkspaceId" desc="The workspace of this connector." type="text" />
  <input name="MessageId" desc="The message id." type="text" />
  <input name="FilePath" desc="The path of the file being processed." type="text" />
  <input name="FileName" desc="The name of the file being processed." type="text" />
  <input name="Attachment#" desc="The path of the attachment being processed." type="text" />
  <input name="Header:*" desc="The message headers of the file being processed." type="text" />
  <output name="Data" desc="The data that will be written to the file in the Receive folder."></output>
  <output name="Encoding" desc="The encoding that will be used to write the file in the Receive folder."></output>
  <output name="FileName" desc="The name of the output file in Receive folder."></output>
  <output name="FilePath" desc="The path of file that will be written to Receive folder."></output>
  <output name="Header:*" desc="The message headers of the file being written."></output>
</arc:info>

<api:set attr="UserId" value="XXXXX"></api:set>
<api:set attr="Password" value="XXXX"></api:set>
<api:set attr="spaceId" value="SPACE_XXXXXX_XXXXX"></api:set>

<arc:set attr="Upload.URL" value="https://app.fleekdrive.com/contentsmanagement/ContentsAdd.json">
<arc:set attr="Upload.form:filename" value="[FileName]"></arc:set>
<arc:set attr="Upload.form:spaceid" value="[spaceId]"></arc:set>
<arc:set attr="Upload.form:checkNewVersion" value="0"></arc:set>
<arc:set attr="Upload.form:verUp" value="on"></arc:set>
<arc:set attr="Upload.form:verUpType" value="auto"></arc:set>
<arc:set attr="Upload.form:versionkind" value="0"></arc:set>
<arc:set attr="Upload.file:file" value="[FilePath]"></arc:set>

<arc:set attr="http.URL" value="https://app.fleekdrive.com/common/Authentication.json?id=[UserId]&pw=[Password]">

<arc:call op="httpGet" in="http">
  <arc:set attr="Upload.header:name" value="Cookie"></arc:set>
  <arc:set attr="Upload.header:value" value="AWSELB=[cookie:awselb]; JSESSIONID=[cookie:jsessionid]"></arc:set>
</arc:call>

<arc:call op="httpUpload" in="Upload" out="result">
  <arc:set attr="output.filename" value="result.json"></arc:set>
  <arc:set attr="output.encoding" value="UTF-8"></arc:set>
  <arc:set attr="output.Data" value="[result.rss:description]"></arc:set>
  <arc:push item="output"></arc:push>
</arc:call>
</arc:set></arc:set>

連携フローの実行

設定は以上です。それでは試しに実行してみましょう。

今回は手動で実行してみますが、通常はEmail Receive コネクタの設定にある「オートメーション」タブで、実行スケジュールを指定して利用します。

今回は手動で接続を行って見るので、「アウトプット」タブで「受信」をクリックしてみます。

以下のようにメールの添付ファイルが受信できていればOKです。

その後、スクリプトコネクタの「インプット」タブでファイルが自動的にアップロードされたことが確認できます。

Fleekdrive の画面に移動してみると、正常にファイルがアップロードされていることを確認できました。

この記事で紹介したフロー(テンプレート)

この記事で作成したフローについては、以下のURLからテンプレートとして使える arcflow がダウンロードできます。

https://cdatajwrk.s3.ap-northeast-1.amazonaws.com/arcflow_template/email_fleekdrive.arcflow

ダウンロードしたarcflow は「ワークスペースをインポート」やフローデザイナーにドラッグ&ドロップで登録できます。こちらのテンプレートを利用する時は、各コネクタでの接続情報などを、お使いの環境に併せて編集してください。

おわりに

このようにCData Arc を利用することで、電子メールとFleekdrive のようなクラウドストレージの連携を簡単に実現することができます。

CData Arc にはZip やGzip、Tar など様々なアーカイブの自動圧縮および解凍ができるコネクタ も備わっていますので、圧縮された添付ファイルの中身を自動連携したい、というようなケースでも活用頂けます。

CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。

CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。 皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。

https://jp.cdata.com/arc/

お試しいただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。

https://jp.cdata.com/support/