LoginSignup
3
2

More than 1 year has passed since last update.

Power Automate: メールアドレスの表示名を取得する方法

Last updated at Posted at 2021-12-16

背景

受信メールをテキスト保存する際に、From の表示名はどうやって取ればよいのか?という質問があった。

目的は、表示名と、メールの内容を保存したい、という話だった。
内部であれば User 情報取れば?と思ったのだが、どうやら外部メールの表示名をってことで、Export Mail を利用して解析していたが、Base64 の部分が単純に Decode するのが面倒、という問題がありました。

で、実際に試した内容と、解決策を記録

試行

以下を使うと、from/to/cc/bcc は単純に mailaddress しか取得出来ない。

で、詳細を取得しようと以下と利用すると、えらいことになります・・
image.png

で、解決策

困ったときの Graph-API ですね。

outlook を眺めて見ると、

例 2: インターネット メッセージ ヘッダーを取得する
image.png

が見つかりますが・・これはちょっと違うのでおいておいて・・

今回はこちらです。

メッセージを取得する
image.png

使用例

image.png

上記コネクタのJSON
{
    "id": "fa4d177b-7397-4177-abdc-3159-0bf0522b",
    "brandColor": "#EB3C00",
    "connectionReferences": {
        "shared_office365groups": {
            "connection": {
                "id": "/providers/Microsoft.PowerApps/apis/shared_office365groups/connections/5e96053ddc264f998e74dbe3ccf3ef9c"
            }
        },
        "shared_office365": {
            "connection": {
                "id": "/providers/Microsoft.PowerApps/apis/shared_office365/connections/cda4ee86c13b40978832f18898d7bdcb"
            }
        }
    },
    "connectorDisplayName": "Office 365 Groups",
    "icon": "https://connectoricons-prod.azureedge.net/releases/v1.0.1538/1.0.1538.2619/office365groups/icon.png",
    "isTrigger": false,
    "operationName": "Send_an_HTTP_request",
    "operationDefinition": {
        "type": "OpenApiConnection",
        "inputs": {
            "host": {
                "connectionName": "shared_office365groups",
                "operationId": "HttpRequest",
                "apiId": "/providers/Microsoft.PowerApps/apis/shared_office365groups"
            },
            "parameters": {
                "Uri": "https://graph.microsoft.com/v1.0/me/messages/@{items('Apply_to_each')?['id']}",
                "Method": "GET",
                "ContentType": "application/json"
            },
            "authentication": {
                "type": "Raw",
                "value": "@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"
            }
        },
        "runAfter": {
            "Export_email_(V2)": [
                "Succeeded"
            ]
        },
        "metadata": {
            "operationMetadataId": "f6533626-dff7-461f-ac1f-d5389a062163"
        }
    }
}

取得例

image.png

あとは、Parse JSON で取り出して利用するだけですね。
Export Mail を利用した経路確認とかがしたい場合は、以下の要領で、Header を JSON 取得したほうが良いかと。

例 2: インターネット メッセージ ヘッダーを取得する の使いどころ

詳細なヘッダーが取れてしまうので、以下のような用途が無い限りは使うことはなさそう

image.png

keyword

how to get mail sender display name in power automate

3
2
0

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
3
2