🐬

Power Automate で Teams のチャネルの投稿から Outlook メールの下書きを作成する方法

2025/03/10に公開

はじめに

Teams の投稿について、Outlook でも同じ内容を送信したいことがありました。
Teams の投稿からメールの下書きを作成するフローを作成したので記録します。

作成手順

手順 内容
Teamsの投稿を取得
メールの下書きを作成
メールに添付ファイルを追加

1. Teamsの投稿を取得

Teams コネクタのトリガー「選択されたメッセージに対して (V2)」から開始します。

トリガーの画像

続けて、Teams コネクタの「メッセージ詳細を取得する」を配置します。

メッセージ詳細を取得の画像

2. メールの下書きを作成

アクション「作成」でメールの構成を作ります。
任意の宛先を設定するときは、emailAddress の name と address を追加します。

作成アクションの画像
{
  "subject": @{concat('【Teams転送】 ',outputs('メッセージ詳細を取得する')?['body/subject'])},
  "body": {
    "contentType": "HTML",
    "content": @{outputs('メッセージ詳細を取得する')?['body/body/content']}
  },
  "toRecipients": [
    {
      "emailAddress": {
        "name": "",
        "address": ""
      }
    }
  ],
  "ccRecipients": [],
  "bccRecipients": []
}

続けて、Outlook メールの下書きを作成します。
Office 365 Outlook コネクタの「HTTP 要求を送信します」を配置します。

HTTP 要求を送信の画像
https://graph.microsoft.com/v1.0/me/messages

例1: JSON 形式のメッセージの下書きを新規作成する場合

https://learn.microsoft.com/ja-jp/graph/api/user-post-messages?view=graph-rest-1.0&tabs=http

3. メールに添付ファイルを追加

手順2で作成した下書きメールに添付ファイルを付けていきます。
まずは、手順2で作成したメールのIDを取得します。

メールIDの取得画像

次に、添付ファイルが保存されているSharePointのチームサイトのURLを取得します。
Office 365 グループコネクタの「HTTP 要求 V2 を送信する」を配置します。

HTTP 要求送信の画像
https://graph.microsoft.com/v1.0/groups/@{triggerOutputs()?['body/teamsFlowRunContext/channelData/team/aadGroupId']}/sites/root

root 識別子は次に示すように、常にターゲットのルート サイトを参照します。
/sites/root:テナントのルート サイト。
/groups/{group-id}/sites/root:グループのチーム サイト。

https://learn.microsoft.com/ja-jp/graph/api/resources/site?view=graph-rest-1.0

最後に、Teamsの投稿の添付ファイルをメールに付けていきます。
コントロールのアクション「それぞれに適用する」を配置します。
添付ファイル(attachments)の数だけ繰り返します。

それぞれに適用するアクションの画像

繰り返しの手順として、まずは、添付ファイルを取得します。
SharePoint コネクタの「パスによるファイル コンテンツの取得」を配置します。

パスによるファイル コンテンツの取得の画像
設定項目 パラメーター
サイトのアドレス* "@body('HTTP_要求_V2_を送信する:チームサイトのURLを取得')?['webUrl']"
ファイル パス* "@items('全ての添付ファイルに適用する')?['contentUrl']"

繰り返しの手順として、次に取得した添付ファイルをメールに付けます。
Office 365 Outlook コネクタの「HTTP 要求を送信します」を配置します。

HTTP 要求送信の画像
設定項目 パラメーター
URI* 後出コードブロック参照
本文 後出コードブロック参照
メソッド* "POST"
https://graph.microsoft.com/v1.0/me/messages/@{variables('メールID')}/attachments
{
  "@odata.type": "#microsoft.graph.fileAttachment",
  "name": "@{items('全ての添付ファイルに適用する')?['name']}",
  "contentBytes": "@{base64(body('パスによるファイル_コンテンツの取得'))}"
}

添付ファイルを作成する場合は、要求本文に以下が含まれます。
"@odata.type": "#microsoft.graph.fileAttachment"
必要なプロパティ name と contentBytes。

https://learn.microsoft.com/ja-jp/graph/api/resources/fileattachment?view=graph-rest-1.0

以上でフローの作成は終了です。

Discussion