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

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

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

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

# 試行

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

- [1 件のメールの取得 (V2)](https://docs.microsoft.com/ja-jp/connectors/office365/#1-%E4%BB%B6%E3%81%AE%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E5%8F%96%E5%BE%97-(v2))
- [複数のメールの取得 (V3)](https://docs.microsoft.com/ja-jp/connectors/office365/#%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E5%8F%96%E5%BE%97-(v3))<br>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/6a88cd8d-a6ca-c201-3215-43057e5c4bd5.png)

で、詳細を取得しようと以下と利用すると、えらいことになります・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/71adb605-1df5-3569-ba38-99b25f2712ec.png)

# で、解決策

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

https://developer.microsoft.com/en-us/graph/graph-explorer

outlook を眺めて見ると、

[例 2: インターネット メッセージ ヘッダーを取得する](https://docs.microsoft.com/ja-jp/graph/api/message-get?view=graph-rest-1.0&tabs=http#example-2-get-internet-message-headers) 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/e74288a2-2249-1da2-647d-a77fd9dc2841.png)

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

今回はこちらです。

[メッセージを取得する](https://docs.microsoft.com/ja-jp/graph/api/message-get?view=graph-rest-1.0&tabs=http)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/c8f981ea-89c9-1621-e883-4695cad1f6cf.png)

## 使用例

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/0638d869-f6a6-0eb5-a3ea-26fff194b25a.png)

```json:上記コネクタの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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/a66678e2-1ab6-397d-cfa3-6397affa35c9.png)

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

# [例 2: インターネット メッセージ ヘッダーを取得する](https://docs.microsoft.com/ja-jp/graph/api/message-get?view=graph-rest-1.0&tabs=http#example-2-get-internet-message-headers) の使いどころ

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

- Received での経路確認
- Return-Path での不達確認
- [Microsoft 365 のスパム対策メッセージ ヘッダ](https://docs.microsoft.com/ja-jp/microsoft-365/security/office-365-security/anti-spam-message-headers?view=o365-worldwide) 関連とか

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/6f440c27-4baa-057a-c493-978edc8e498b.png)

# keyword

how to get mail sender display name in power automate