
「Power Automateクラウドフロー添付ファイルメール送信」のご購読ありがとうございます。
このページは、読者専用ページになります。
条件分岐などの長い式、JSONなどをコピペでアクションに追加できます。
※式は、fxに追加して下さい。
※入力が簡単な短いフィルタークエリや式はありません。
Buttonの列に追加したフロー実行ボタンのJSONは、ファイルにしてあります。
ダウンロードしてお使いください。
ダウンロードしてお使いください。

龍之介
※会社のセキュリティーによりダウンロードできない場合の対応はしていません。
メール送信ボタンのJSONファイル&フロー全体画像
JSONファイルとテキストファイルがあります。
※クリックした後に、次のダウンロードを押す必要があります。パスワードは、電子書籍の「SharePointリスト添付ファイルメール」の「選択したアイテムの場合」にあります。
作成ポイント
OneDrive添付ファイルメール
補足動画が2つあります。

龍之介
ファイルが作成されたとき(添付ファイル1つ)
共有リンクメールを送信
下記共有リンクを送ります。<br>
<a href="@{outputs('共有リンクを作成する')?['body/WebUrl']}" target="_blank" rel="noopener noreferrer">@{outputs('ファイル_メタデータの取得')?['body/DisplayName']}
</a><br>
選択したファイルの場合(添付ファイル複数)
JSONの解析
{
"type": "array",
"items": {
"type": "object",
"properties": {
"Id": {
"type": "string"
},
"Name": {
"type": "string"
},
"NameNoExt": {
"type": "string"
},
"DisplayName": {
"type": "string"
},
"Path": {
"type": "string"
},
"LastModified": {
"type": "string"
},
"Size": {
"type": "integer"
},
"MediaType": {
"type": "string"
},
"IsFolder": {
"type": "boolean"
},
"ETag": {
"type": "string"
},
"FileLocator": {
"type": "string"
},
"LastModifiedBy": {
"type": "string"
}
},
"required": [
"Id",
"Name",
"NameNoExt",
"DisplayName",
"Path",
"LastModified",
"Size",
"MediaType",
"IsFolder",
"ETag",
"FileLocator",
"LastModifiedBy"
]
}
}
ファイルがあるかチェック
length(body('アレイのフィルター処理'))
Attachment配列変数に追加
{
"Name": @{items('ループ処理で添付ファイルの配列を作成')['DisplayName']},
"ContentBytes": @{body('ファイル_コンテンツの取得')}
}
FileLink文字列変数に追加
concat('<li><a href="',outputs('共有リンクを作成する')?['body/WebUrl'],'" target="_blank" rel="noopener noreferrer">',item()?['DisplayName'],'</a></li><br>')
SharePointリスト添付ファイルメール
補足動画が2つあります。

龍之介
項目が作成されたとき(添付ファイル複数)
Attachment配列添付ファイル
{
"Name": @{items('Apply_to_each')?['DisplayName']},
"ContentBytes": @{body('添付ファイルのコンテンツの取得')}
}
FileLink文字列変数に追加
concat('<li><a href="',item()?['AbsoluteUri'],'?web=1"',' target="_blank" rel="noopener noreferrer">',item()?['DisplayName'],'</a></li><br>')
選択したアイテムの場合(添付ファイル複数)
項目が作成されたとき(添付ファイル複数)のフローをコピーしてトリガーを変更する手順なので、コピーする式などはありません。

龍之介
SharePointドキュメントライブラリ添付ファイルメール
補足動画が2つあります。

龍之介
ファイルが作成されたとき(プロパティのみ)(添付ファイル1つ)
共有リンクメールを送信
下記共有リンクを送ります。<br>
<a href="@{outputs('ファイルまたはフォルダーの共有リンクの作成')?['body/link/webUrl']}" target="_blank" rel="noopener noreferrer">@{outputs('ファイル_メタデータの取得')?['body/DisplayName']}
</a><br>
トリガー条件
@equals(triggerOutputs()?['body/{IsFolder}'],false)
選択したファイルの場合(添付ファイル1つ)
拡張子付きファイル名を抽出
item()?['{FilenameWithExtension}']
ファイルがあるかチェック
length(body('アレイのフィルター処理'))
ファイル メタデータの取得、ファイルコンテンツの取得
item()?['{Identifier}']
添付ファイル
{
"Name": @{items('ループ処理で添付ファイルの配列を作成')?['{FilenameWithExtension}']},
"ContentBytes": @{body('ファイル_コンテンツの取得')}
}
文字列変数に追加
concat('<li><a href="',outputs('ファイルの共有リンクの作成')?['body/link/webUrl'],'" target="_blank" rel="noopener noreferrer">',item()?['{FilenameWithExtension}'],'</a></li><br>')
Forms添付ファイルメール
補足動画が1つあります。

龍之介
新しい応答が送信されるとき(OneDrive添付ファイル複数)
ファイルがあるかチェック
length(body('アレイのフィルター処理'))
添付ファイル
{
"Name": @{items('ループ処理で添付ファイルの配列を作成')?['DisplayName']},
"ContentBytes": @{body('ファイル_コンテンツの取得')}
}
新しい応答が送信されるとき(SharePoint添付ファイル複数)
ファイルの取得 (プロパティのみ)
Author/EMail eq '@{outputs('ユーザー_プロフィールの取得_(V2)')?['body/mail']}'
ファイルがあるかチェック
length(outputs('ファイルの取得_(プロパティのみ)')?['body/value'])
添付ファイル
{
"Name": @{items('ループ処理で添付ファイルの配列を作成')?['{FilenameWithExtension}']},
"ContentBytes": @{body('ファイル_コンテンツの取得')}
}
拡張子付きファイル名を抽出
item()?['{FilenameWithExtension}']
FileLink文字列変数に追加
<li><a href="@{outputs('ファイルまたはフォルダーの共有リンクの作成')?['body/link/webUrl']}" target="_blank" rel="noopener noreferrer">@{outputs('ファイルの移動')?['body/DisplayName']}</a></li><br>
Teams投稿添付ファイルメール
補足動画が2つあります。

龍之介
チャネルに新しいメッセージが追加されたとき(添付ファイル複数)
ファイルの取得 (プロパティのみ)フィルタークエリ
FileLeafRef eq '@{items('Apply_to_each')?['name']}'
ファイル メタデータの取得、ファイルコンテンツの取得
first(outputs('ファイルの取得_(プロパティのみ)')?['body/value'])?['{Identifier}']
添付ファイル
{
"Name": @{items('Apply_to_each')?['name']},
"ContentBytes": @{body('ファイル_コンテンツの取得')}
}
FileLink文字列変数に追加
<li><a href="@{outputs('ファイルまたはフォルダーの共有リンクの作成')?['body/link/webUrl']}" target="_blank" rel="noopener noreferrer">@{items('Apply_to_each')?['name']}</a></li><br>
トリガー条件
@greaterOrEquals(length(triggerOutputs()?['body/attachments']),1)
選択されたメッセージに対して(V2)(添付ファイル複数)
選択されたメッセージに対して(V2)
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.3",
"body": [
{
"type": "Input.ChoiceSet",
"choices.data": {
"type": "Data.Query",
"dataset": "graph.microsoft.com/users"
},
"placeholder": "ユーザー名を入力して追加してください。",
"id": "peoplemail",
"isMultiSelect": true
}
],
"actions": [
{
"type": "Action.Submit",
"title": "送信"
}
]
}
添付ファイルがあるかチェック
length(body('メッセージ詳細を取得する')?['attachments'])
ループ処理で送信ユーザーを作成
split(triggerBody()?['cardOutputs']?['peoplemail'],',')
contentUrl
body('メッセージ詳細を取得する')?['attachments']?[0]?['contentUrl']
Library
decodeUriComponent(substring(outputs('contentUrl'),nthIndexOf(outputs('contentUrl'),'/',5),sub(lastIndexOf(outputs('contentUrl'),'/'),nthIndexOf(outputs('contentUrl'),'/',5))))
SiteAddress
substring(outputs('contentUrl'),0,nthIndexOf(outputs('contentUrl'),'/',5))
Apply to each
body('メッセージ詳細を取得する')?['attachments']
ファイルの取得 (プロパティのみ)フィルタークエリ
FileLeafRef eq '@{items('Apply_to_each')?['name']}'
ファイル メタデータの取得
first(outputs('ファイルの取得_(プロパティのみ)')?['body/value'])?['{Identifier}']
ファイル コンテンツの取得
first(outputs('ファイルの取得_(プロパティのみ)')?['body/value'])?['{Identifier}']
添付ファイル
{
"Name": @{items('Apply_to_each')?['name']},
"ContentBytes": @{body('ファイル_コンテンツの取得')}
}
FileLink文字列変数に追加
<li><a href="@{outputs('ファイルまたはフォルダーの共有リンクの作成')?['body/link/webUrl']}" target="_blank" rel="noopener noreferrer">@{items('Apply_to_each')?['name']}</a></li><br>
拡張子付きファイル名を抽出(開始)
body('メッセージ詳細を取得する')?['attachments']
拡張子付きファイル名を抽出(マップ)
item()?['name']
選択されたメッセージに対して(V2)補足動画内のJSON
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.3",
"body": [
{
"type": "TextBlock",
"text": "宛先",
"wrap": true
},
{
"type": "Input.ChoiceSet",
"choices.data": {
"type": "Data.Query",
"dataset": "graph.microsoft.com/users"
},
"placeholder": "ユーザー名を入力して追加してください。",
"id": "peoplemail",
"isMultiSelect": true
},
{
"type": "TextBlock",
"text": "件名",
"wrap": true
},
{
"type": "Input.Text",
"placeholder": "件名を入力してください。",
"id": "subtitle",
"IsRequired": true,
"errorMessage": "件名を入力してください。"
},
{
"type": "TextBlock",
"text": "本文",
"IsRequired": true,
"wrap": true
},
{
"placeholder": "本文を入力してください。",
"type": "Input.Text",
"id": "mailbody",
"spacing": "None",
"IsRequired": true,
"isMultiline": true,
"errorMessage": "本文を入力してください。"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "送信"
}
]
}