松本典子の「Azure Logic Apps」超入門 ~AI編~ 第10回
別途送られてくる通知メールからAIがパスワードを抽出、zipファイルを復号してOneDriveに保存
メールで届く添付ファイルの暗号化を自動解除するLogic Appsを作ろう
2020年10月06日 08時00分更新
3. ExcelとOneDriveフォルダの準備
処理中に使用するメール件名やファイル名、パスワードなどの情報を記録するためのExcelファイルを用意します。「シート1」「シート2」にそれぞれ以下の項目名を持つテーブルを準備し、「zip-mail-list.xlsx」というファイル名でOneDriveに保存してください。
●シート1(テーブル1):添付ファイル送信者の情報を一時的に記録
※zipファイルのパスワード解除後、この情報は削除します。
項目名
- 受信日時
- 送信者
- メール件名
- ファイル名(zip)
●シート2(テーブル2):zipファイルのパスワードを記載する
※シート1の情報に加えてパスワードも記録します。後からパスワードを探す手間を防ぐ目的です。
項目名
- 受信日時
- 送信者
- メール件名
- ファイル名(zip)
- パスワード
作成したExcelファイルは「Excel Online (Business)」コネクタを通じて操作しますので、OneDrive内に保存しておいてください。なお、Excelコネクタの詳細は、以下のドキュメントを参考にしてください。
OneDriveは、メール添付されたzipファイルの保存場所としても利用します。OneDriveには、以下のフォルダ名で2つのフォルダを準備してください。
- mail-Attachment-zip:メールの添付ファイル(zipファイル)を保存
- zipfile:パスワード解除後のzipファイルを保存
4-1. Azure Logic Appsワークフローの作成
今回は2つのLogic Appsワークフローを作成します。
- 4-2. ZIPFilemaillist(添付ファイルありのメール情報のリストを作成)
- 4-3. ZIPFileRelease(添付ファイルのパスワードを解除)
以下では、まずLogic Apps用のリソースを新規作成したのち、「ZIPFilemaillist(添付ファイルありのメール情報のリストを作成)」ワークフローから順に作成していきます。
4-1-1. Azure Logic Appsのリソースを新規作成する
Logic Appsリソースの新規作成は、Azureポータルトップ画面の「+リソースの作成」をクリックし、次の画面で左メニュー「統合」→「Logic App」と選択します。リソースの作成画面では、以前の記事を参考にして必要項目を入力してください。
4-2. ZIPFilemaillist(添付ファイルありのメール情報のリストを作成)
ZIPFilemaillistは、ユーザーのOutlookメールを参照して、添付ファイルのあるメールの一覧リストを作成するワークフローです。次のようにして作成します。
4-2-1. Azure Logic Appsのトリガーの作成
ワークフローを実行させるトリガーには、Office 365 outlookコネクタの「新しいメールが届いたとき(V3)」を選択します。「添付ファイル付きのみ」の項目を「はい」に設定して、添付ファイル付きメールが届いたときのみ処理を実行するようにします。
4-2-2. For eachアクションの設定
「次のステップを作成」では、「制御」と検索して出てくる「For each」コネクタを選択します。このとき「以前の手順から出力を選択」には、動的コンテンツの「添付ファイル」を選択します。
なお、これ以降のアクションは、すべてこのFor each内に追加する(つまり繰り返し処理が行われる)ようにします。
4-2-3. ウイルススキャンの設定
今回の仕組みでは、添付ファイル付きメールが届くと自動的にOneDriveへのファイル保存やパスワード解除などの処理が実行されます。このままだと、スパムやフィッシングメールの危険な添付ファイルがOneDriveに保存されてしまうリスクもあるので、それらのファイル処理を実行する前にウイルススキャンを挟むことにします。
「アクションの追加」をクリックし、「Cloudmersive」と検索してCloudmersive Virus Scanコネクタの「Scan a file for viruses」アクションを追加し、「添付ファイルコンテンツ」をスキャンするよう設定します。なおCloudmersiveサービスへの接続には、>Cloudmersiveサイトで取得できるAPIキーが必要です。
4-2-4. 条件コネクタの設定
上述したCloudmersive Virus Scanコネクタは、指定されたファイルをスキャンして脅威判定を行うだけであり、ウイルスの除去はしてくれません。スキャンしたファイルにウイルスが含まれていなかった場合は、実行結果の「CleanResult」で「true」の値を返します。
そこで、次のアクションには「条件」コネクタを指定し、添付ファイルに問題がない場合(実行結果の「CleanResult」が「true」の場合)のみ、引き続きファイル保存などの処理を行うように設定します。
4-2-5. 条件コネクタ(スキャン結果がtrueの場合、falseの場合のアクション)
添付ファイルに問題がない場合は、OneDrive内に作成した「mail-Attachment-zip」フォルダに、メールの添付ファイルを保存します。OneDrive for Businessコネクタを検索し、「ファイルの作成」アクションを選択して、添付ファイルが元のファイル名のまま保存されるように設定します。
加えて、Excelのリストに受信日時やメール件名などの情報を書き込みます。次のアクションとして、「Excel Online (Business)」コネクタの「表に行を追加」を選択。記録を書き込むファイルやテーブル、書き込む内容などは上の画像を参照してください。
一方で、Cloudmersive Virus Scanコネクタの実行結果で「CleanResult」が「false」だった場合は、添付ファイルにウイルスなどの脅威が含まれていることになります。この添付ファイルを開くのは危険なので、ユーザーに警告メールを自動送信するよう設定しました。
この連載の記事
-
第11回
TECH
AI+ノーコードで動画の字幕を自動生成するツールを作ろう -
第9回
TECH
人物写真の顔をAIが検出し、ぼかしてツイートするLogic Appsを作ろう -
第8回
TECH
Power AutomateのRPA「UIフロー」でPhotoshopの操作を自動化してみよう -
第7回
TECH
「指定した場所に近づくとスマホに買い物リストを通知する」仕組みを作ろう -
第6回
TECH
文字入り画像を送るとテキストに書き起こすLINEボットを作ろう -
第5回
TECH
現在地から目的地までの道案内をするLINEチャットボットを作ろう -
第4回
TECH
音声認識AIを使ってLINEのボイスメッセージをテキスト変換してみよう -
第3回
TECH
自分用メモ的にLINE送信した予定をAIで読み取ってGoogleカレンダーに自動登録しよう -
第2回
TECH
AIで「alt属性」文章を自動生成しよう!もちろんノンコーディングで -
第1回
TECH
ノンコーディングで質問に自動回答するLINE BOTを作ってみよう - この連載の一覧へ