- はじめに
- 考え方
- 1.新規メールの下書きを作成する
- 2.返信の下書きを作成する
- 3.全員に返信する下書きを作成する
- 4.転送の下書きを作成する
- 5.下書きメールにファイルを添付する
- 参考にしたページ
- さいごに
はじめに
Power Automate クラウドフローでOutlook メールの下書きを作成する方法です。
考え方
Power Automate のOffice 365 Outlook コネクタには下書きメールを作成するアクションは用意されていませんが「HTTP 要求を送信します」アクションを使ってGraph APIを呼び出すことで作成することが可能です。
- 新規メールの下書き
- 返信するメールの下書き
- 全員に返信するメールの下書き
- 転送するメールの下書き
- 下書きメールにファイルを添付する
のパターンを確認してみました。
1.新規メールの下書きを作成する
Graph API の「メッセージを作成する」を利用します。
フロー全体
1アクションだけです。
フロー解説
[Office 365 Outlook]HTTP 要求を送信します-下書きメールを作成
- URI
- メソッド
- POST
- 本文
- 下書き保存するメッセージをJSONで指定します。
- 一例は件名,本文,to,cc,bccを指定するとこんな感じです。
-
{ "subject": "メールの下書きを作成するよ", "body": { "contentType": "HTML", "content": "<p>メッセージの本文です</p><p>テスト</p><p>なのです。</p>" }, "toRecipients": [ { "emailAddress": { "name": "strike", "address": "GAT-X105@seed-dummy.onmicrosoft.com" } }, { "emailAddress": { "name": "rouge", "address": "MBF-02@seed-dummy.onmicrosoft.com" } } ], "ccRecipients": [ { "emailAddress": { "name": "freedom", "address": "ZGMF-X10A@seed-dummy.onmicrosoft.com" } }, { "emailAddress": { "name" : "strike freedom", "address": "ZGMF-X20A@seed-dummy.onmicrosoft.com" } } ], "bccRecipients": [ { "emailAddress": { "name": "rising freedom", "address": "STTS-909@seed-dummy.onmicrosoft.com" } } ] }
- subject
- 件名
- body
- contentType
- HTML , Text ←本文の形式を指定
- content
- 本文を記述。(Textの場合は\nで改行)
- contentType
- toRecipients
- emailAddress ※複数指定可
- name
- 宛先(To)の表示名(省略可能)
- address
- 宛先(To)のメールアドレス
- name
- emailAddress ※複数指定可
- ccRecipients
- emailAddress ※複数指定可
- name
- ccの表示名(省略可能)
- address
- ccのメールアドレス
- name
- emailAddress ※複数指定可
- bccRecipients
- subject
- その他設定可能な属性はこちらに記載されています。
実行結果
メールの下書きが作成されます。
2.返信の下書きを作成する
返信の場合は、下書きメッセージの作成→メッセージの更新の2ステップになります。
Graph API の「返信メッセージの作成(createReply)」でメールを作成したのちに、「メッセージを更新する」でメッセージの中身を更新しています。
フロー全体図
フロー解説
[Data Operation]作成-元メッセージのId
返信するメールのメッセージidが必要です。Office 365 Outlook コネクタのメールを取得する(V3)アクションなどの出力に含まれているものが利用できます。
今回はサンプルフローの為、作成アクションにidを直接格納しています。
[Office 365 Outlook]HTTP 要求を送信します-返信の下書きを作成
- URI
- https://graph.microsoft.com/v1.0/me/messages/{メッセージId}/createReply
- メソッド
- POST
- コンテンツの種類
- application/json
[Office 365 Outlook]HTTP 要求を送信します-返信の下書きメールを更新
作成した下書きメールを更新します。
- URI
- https://graph.microsoft.com/v1.0/me/messages/@{body('HTTP_要求を送信します-返信の下書きを作成')?['id']}
- https://graph.microsoft.com/v1.0/me/messages/@{body('HTTP_要求を送信します-返信の下書きを作成')?['id']}
- メソッド
- PATCH
- コンテンツの種類
- application/json
- 本文
- メッセージをJSONで指定します
- 一例はこんな感じ
-
{ "body": { "contentType":"HTML", "content":"<p>やあ 元気かい?</p><p>これはテストメールなんだ</p>" } }
- 新規メールの下書きの場合と同じです
- その他設定可能な属性はこちらに記載されています。
実行結果
返信メールの下書きが作成されます。
3.全員に返信する下書きを作成する
元メールのTo,CCの全員に返信する下書きを作成することも可能です。
「2.返信メールの下書きを作成する」の場合とほぼ同じです。
「[Office 365 Outlook]HTTP 要求を送信します-返信の下書きを作成」アクションを下記に変更するだけです。URI以外のパラメータは共通です。
フロー解説
[Office 365 Outlook]HTTP 要求を送信します-全員返信の下書きを作成
- URI
- https://graph.microsoft.com/v1.0/me/messages/@{outputs('作成-元メールのid')}/createReplyAll
- メソッド
- POST
- コンテンツの種類
- application/json
実行結果
4.転送の下書きを作成する
元メールを転送する下書きを作成することも可能です。
元メールのTo,CCの全員に返信する下書きを作成することも可能です。
「2.返信メールの下書きを作成する」の場合とほぼ同じです。
「[Office 365 Outlook]HTTP 要求を送信します-返信の下書きを作成」アクションを下記に変更するだけです。URI以外のパラメータは共通です。
フロー解説
[Office 365 Outlook]HTTP 要求を送信します-転送の下書きを作成
- URI
- https://graph.microsoft.com/v1.0/me/messages/@{outputs('作成-元メールのid')}/createForward
- メソッド
- POST
- コンテンツの種類
- application/json
実行結果
5.下書きメールにファイルを添付する
下書きメールにファイルを添付することも可能です。
- (新規/返信/転送)下書きメールを作成
- ファイルをOneDrive for Businessから取得
- ファイルに添付
の3ステップとなります。
フロー全体図
Onedrive for Business上のファイルを添付するイメージです。
フロー解説
[Office 365 Outlook]HTTP 要求を送信します-下書きメールを作成
まず添付ファイル無しの下書きメールを作成します。
[OneDrive for Business]パスによるファイル コンテンツの取得-添付ファイル
OneDrive for Business 常にあるファイルのコンテンツを取得します。
- ファイルパス
- 添付するファイルのパス
- コンテンツタイプの推測
- はい
[Variable]変数を初期化する-FileName
添付するファイルのファイル名です。
- Name
- FileName
- Type
- String
- Value
-
last( split( actions('パスによるファイル_コンテンツの取得-添付ファイル')['inputs']['parameters']?['path'], '/' ) )
- actions関数で"パスによるファイル コンテンツの取得-添付ファイル"アクションに設定したファイルパスのパラメーターからファイル名を取得しています。
-
[Office 365 Outlook]HTTP 要求を送信します-ファイルを添付する
実行結果
ファイルが添付された下書きメールが作成されます。
参考にしたページ
actions関数について学ばせていただきました。わたるふさんいつもありがとうございます。
公式リファレンスのチェックは必須です。
さいごに
メール作成系のGraph APIが[Office 365 Outlook] コネクタの「HTTP要求を送信します」アクションで使えることを確認しただけですが、備忘録的にまとめてみました。