読者ページ

【読者ページ】Power Automateクラウドフロー添付ファイルメール送信

 

「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": "送信"
        }
    ]
}

 

-読者ページ

© 2022 越後屋ブログ店