Microsoft Exchange Onlineからメールを送受信するテンプレートを紹介します。
まずはテンプレートファイルをダウンロードし、フローデザイナーにインポートします。
<事前準備>
事前に以下を準備してください。
①クライアントID
②クライアントシークレット
③リダイレクト URI
④AuthorizationCode
⑤件名(テキストファイル)
⑥本文(テキストファイル)
⑦宛先(CSVファイル)
・①,②,③の準備方法
Azure ADでクライアントID、クライアントシークレットを取得する必要があります。取得方法はこちらの記事をご確認ください。
https://support.asteria.com/hc/ja/articles/360000061134
テンプレートフロー内で指定しているスコープはmail.read、mail.send、offline_accessです。
・④の準備方法
取得したクライアントIDを元にブラウザで以下URLにアクセスし、アカウント認証及び権限付与を行ってください。完了後の画面に表示されるコードが③AuthorizationCodeです。
https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?
client_id=[クライアントID]&response_type=code&redirect_uri=[リダイレクトURI]&response_mode=query&scope=https://graph.microsoft.com/mail.read https://graph.microsoft.com/mail.send offline_access &state=12345
※URL内[クライアントID]、[リダイレクトURI]には①のクライアントID、リダイレクトURIをそれぞれ入力してください。
※サインイン画面や同意画面が表示されたら、表示内容に従って操作してください。
正常に動作すると、設定したリダイレクトURIに遷移しブラウザのアドレスバーを確認します。“code=”より右側、"&state"の直前までの文字列がAuthorization Codeです。
・⑤,⑥の準備
それぞれ件名、本文の内容をテキストファイルとして準備してください。
・⑦の準備
1列目に送信先メールアドレスを指定したCSVファイルを用意してください。
〇メール送受信
<ステップ1>
事前準備で用意したクライアントID、クライアントシークレット、AuthorizationCodeをそれぞれ入力します。
<ステップ2>
テナントでは、アプリケーションにサインインできるユーザーを制御します。使用できる値は、common、organizations、consumers およびテナント識別子です。
common:個人の Microsoft アカウントと Azure AD の職場/学校アカウントのどちらでもアプリケーションにサインインできます。
organizations:Azure AD の職場/学校アカウントを持つユーザーのみがアプリケーションにサインインできます。
consumers:個人の Microsoft アカウント (MSA) を持つユーザーのみがアプリケーションにサインインできます。
テナント識別子:特定の Azure AD テナントの職場/学校アカウントを持つユーザーのみがアプリケーションにサインインできます。
redirect uriでは事前準備で登録したリダイレクトURIを入力してください。
<ステップ3>
件名のファイルパスとエンコーディングをそれぞれ選択します。
<ステップ4>
本文のファイルパスとエンコーディングをそれぞれ選択します。
<ステップ5>
宛先のファイルパスとエンコーディングをそれぞれ選択します。
これで完成です。
最初にAccessTokenを取得する”getTokenByCode”フローを実行し、AccessToken及びRefreshTokenを取得し、ファイル保存してください。
保存したトークンを利用してメール送受信を行います。”sendMail”フローを実行することで、メール送信を行い、”recieveMail”フローを実行することで、メール受信を行います。
<注意事項>
【getTokenByCode】
・Authorization Codeの有効期限が切れている場合は、「④の準備方法」を再度行い、フロー変数”code”の値を更新してください。
・本テンプレートでは、リフレッシュトークンを用いたアクセストークンの更新を行っています。リフレッシュトークンを取得するためには、スコープにoffline_accessを追加することが必要です。
【recieveMail】
・メールを50件ずつ取得する処理を最大100回繰り返すため、5千件まで取得可能です。5千件以上取得する場合は、”LoopStart1”コンポーネントの実行回数を調整してください。
・1回のリクエストで取得するメール件数は、フロー変数”url”の”$top=50”で決まります。”50”を取得したい件数に書き換えることができます。
・取得したメール情報はプロジェクトフォルダにあるCSVファイル「maillist.csv」に書き込まれます。
・本文はテキストで取得し、プロジェクトフォルダにある「Body」フォルダ配下に配置されます。
・添付ファイルはプロジェクトフォルダにある「attachment」フォルダ配下に配置されます。
【共通】
・テンプレートはサポート対象外です。
・フローテンプレートをご利用の際は、動作環境や実現したい処理に応じてお客様自身でフローを調整いただく必要がございます。あらかじめご了承ください。
・APIの詳細はMicrosoft Graph REST APIのリファレンスをご確認ください。
---
作成日:2022/02
ASTERIA Warpバージョン:2112
---
以上、Microsoft Exchange Onlineからメール送受信するフローテンプレートを紹介しました。
ぜひご活用ください。