はじめに
Outlook にはメールを日時を指定してスケジュール送信する機能があります。
このスケジュール送信メールをPower Autoamte クラウドフローから作成することができます。
↓
考え方
Office 365 Outlook コネクタには該当するアクションはありませんが、Microsoft Graph APIを利用することで実現が可能です。
※「HTTP with Entra ID (preauthorized)」コネクタを利用するため、Power Automate Premium 等の単体ライセンスが必要になります。
1.メールを作成する
Graph API の sendMail エンドポイントを利用します。Office 365 Outlook コネクタに「HTTP要求を送信します」アクションがありますが、このエンドポイントはサポートされてない為、「HTTP with EntraID (preauthorized)」コネクタの「HTTP要求を呼び出します」アクションを使用しています。
- 方法
- POST
- URL
- 要求の本文
-
{ "message": { "subject": "Meet for lunch?", "body": { "contentType": "Text", "content": "The new cafeteria is open." }, "toRecipients": [ { "emailAddress": { "address": "lesser_panda@xxxxx.onmicrosoft.com" } } ], "ccRecipients": [ { "emailAddress": { "address": "sasori@xxxxx.onmicrosoft.com" } } ], "singleValueExtendedProperties": [ { "id":"SystemTime 0x3FEF", "value":"2025-06-21T23:00:00.000Z" } ] } }
-
本文のポイントは"singleValueExtendedProperties"です。スケジュール送信のパラメータはGraph APIのmessageリソースではサポートされていません。その為、拡張プロパティを利用して設定します。
id には"SystemTime 0x3FEF"を指定します。これがスケジュール送信の設定を示します。送信日時はUTCで指定します。
2.メールの設定値を取得する
メールに設定されているスケジュール送信の設定値を取得することもGraph APIを使うことで取得できます。
こちらのエンドポイントを利用します。
取得に関しては、Office 365 Outlook コネクタの「HTTP要求を送信します」アクションでも実行可能でしたので、こちらはPower Autoamteの単体ライセンスは不要です。
- URI
-
https://graph.microsoft.com/v1.0/me/messages/【id】?expand=singleValueExtendedProperties(filter=id eq 'SystemTIme 0x3FEF')
- 【id】にはメールのidを指定します
-
- メソッド
- GET
出力のJSONに下記のような形でスケジュール送信の設定が含まれています。
さいごに
Office 365 Outlook コネクタの 「HTTP要求を送信します」アクションで実行できないことだけが惜しいですが、メールのスケジュール送信を多用している場合には有効活用できそうです