6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

#PowerAutomate 複数添付ファイル付きメールを送信する

Posted at

Power Automate でメール送信する際、複数ファイルを添付する方法です。

説明の前提

当記事で説明するフローの内容は「SharePoint Online(以降、SPO)のリストへ既に登録されている添付ファイル」を取得して [メールの送信]アクションで複数ファイルをまとめて1通のメールへファイル添付してメール送信する、という流れになっています。
03-SPOList.png
上イメージのアイテムが、末尾の動作結果で登場します。

フローの全体像

皆さんが実現したいコトにあわせて適宜変更してくださいね。
01-zentai.png
実際に試してみるとスグにわかると思いますので SPO リストから”SPO アイテム上の添付ファイルを Apply to each でコンテンツ取得している箇所”の説明は割愛します。

添付ファイルを配列に退避

複数ファイルが添付されたメール送信をしたい場合のポイントは配列です。変数で配列(Array)を用意して、ファイルコンテンツを取得した結果を格納していきます。
[配列変数に追加]アクションの値は下記のように設定してください。
02-AddArray.png
JSON 形式です。"name" に拡張子込みのファイル名、"contentBytes" には取得したファイルコンテンツを指定します。

      {
        "name": "[ファイル名(※拡張子込み)]",
        "contentBytes": "[ファイルコンテンツ]"
      }

このように JSON 形式でファイル名・ファイルコンテンツを配列に詰めています。メールの添付ファイルについて、参考までに Graph API の Docs を参照して JSON を確認してみましょう。

https://docs.microsoft.com/ja-jp/graph/api/message-post-attachments?view=graph-rest-1.0&tabs=http&WT.mc_id=BA-MVP-5004053#request
image.png
先ほどフローで指定した内容と、ほぼ同じですよね。
ちなみに、記事投稿時点(2022/03/15)で、Docs では記載されている "type" は無しで問題なく動作します。フローの実行結果をみると Graph API の Docs と若干異なるカタチになっていますが、"contentBytes"の中にコンテンツタイプが設定されているのが確認できます。なので、大丈夫なのだろうと個人的には考えています。
08-実行結果抜粋.png

[メールの送信]アクションのポイント

ここまでの処理で、メールに添付したいファイルが格納された配列が準備できました。その配列を[メールの送信]アクションに渡してあげる必要があります。アクションが初期状態のままだと、添付ファイルを1つずつ追加していく状態になっています。
その添付ファイル要素の右端にある四角に T が書かれているアイコンをクリックしてください。
06-SendMailAction.png
そうすると、添付ファイルを指定する場所が 1 つに変わります。
07-SendMailAction.png
ここに、準備した配列を指定してあげれば OK です!

メール送信結果

下イメージはフローからメール送信された側(=受信者)のスクリーンショットです。メールへ複数添付ファイルがある状態で届いてますね。
04-email.png
配列に送信したいファイルを突っ込んで、メール送信する際に配列を渡してヨシ!です。

まとめ

当方の過去経験談なんですが、C# 等の開発言語で EWS で添付ファイル付きメールを送信する 際は、

  1. Message オブジェクトを作る
  2. 件名(Title) や 本文(Body) 、宛先(To)などを詰める
  3. 添付ファイルを配列ぽく追加する(Array へ Add)
  4. 送信する

といった手順だったと記憶しておりまして。(随分前の記憶なので少々間違っているかも)
Power Automate でも同じような仕組みで配列にまとめてドーン!だろう、と予想して試してみたらビンゴだった、という感じです。加えて JSON 書かないとダメな予感もしていたのですが、そちらも調べて試したら正解でした。もちろん、実際に意図した動作をするまで試行錯誤してますが、話すと長くなるので割愛。裏の処理で動いているのは API ですから「自分がやりたいコト・実現したいコト」に関連する Graph API も確認すると幸せになれる可能性があるな、と思いました。

当記事の説明は SPO リストに登録済みの添付ファイルを利用しましたが、他の手段であってもファイル名とファイルのコンテンツ(中身)が把握できていれば問題無く動作すると思います。

それでは皆さま、素晴らしい Power Platform Life を!!

6
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?