ささみ学習帳 - sasami's study book

ささみ学習帳

Microsoft365 や Power Platform について学んだこと・アイデアのメモ

Outlook on the Web でメールをダイレクトに開くURLを取得する

 

はじめに

Graph API でメールを取得するとメールにwebLinkというプロパティがあり、このリンクにアクセスするとOutlook on the Webでメールを直接開くことができます。

このURLがあればメールと他のアプリの連携がやりやすくなり便利そうなのですが、このURLを取得する方法はOutlook on the Webのメールの画面を探しても見つかりませんでした。そこでGraph APIを使わずにメールのURLを取得する方法を調べてみました。

learn.microsoft.com

 

URLを取得する方法

1.Outlook on the Web でメールにフラグを付ける

 

2.Microsoft To Doを開く

 

3.To Do で「フラグを設定したメール」リストを開く

 

4.メールのタスクをクリック

 

5.「開く」を右クリックしてリンクのコピー

 

以上の手順でメールへのリンクが取得できます。

 

 

URLの形式について

Graph APIとTo Doのタスクから取得できるメールのURLは同じ形式で、次のような形になっています。

 

https://outlook.office365.com/owa/
?ItemID={id}
&exvsurl=1
&viewmodel=ReadMessageItem

{id}にはメールの内部的なidが指定されています。

その他のパラメーターの意味は分かりませんでした。

 

このURLにアクセスすると、下記の形式のURLにリダイレクトされます。

https://outlook.office365.com/mail/deeplink/read/{id}%3d
?ItemID={id}
&exvsurl=1

※?以降のパラメータを削除しても開くことができました。

 

 

learn.microsoft.com

 

Power Automate クラウドフローで楽をする(1)

少数であればTo Do からリンクを取得するもありですが、数が増えると面倒になってきます。

例えば、こんな簡単なフローを作っておくと、フラグを付けたメールのリンクをTeamsチャットに投稿します。

Power Automate クラウドフローで楽をする(2)

To Do のフラグ付きメールのリストをCSV出力するフローです。リンクが欲しいメールにフラグを付けておき、このフローを実行してCSVファイルに一括出力させる方法です。

フロー解説

1.[Flow button for mobile]フローを手動でトリガーする

 

2.[Microsoft To-Do (Business)]フォルダー別に To Do を一覧表示する (V2)

  • To Do リスト
    • Flagged Emails

 

3.[Data Control] 選択

  • From
    • @{body('フォルダー別に_To_Do_を一覧表示する_(V2)')}
  • Maps
    • title
      • @{item()?['title']}
    • createDateTime
      • @{item()?['createdDateTime']}
    • WebUrl
      • @{item()?['linkedResources'][0]?['webUrl']}

 

4.[Data Control]CSVテーブルの作成

  • From
    • @{body('選択')}

 

5.[OneDrive for Business]ファイルの作成

  • フォルダーのパス
    • /MailExport/
  • ファイル名
    • mailexport-@{convertFromUtc(utcNow(), 'Tokyo Standard Time', 'yyyy-MM-ddTHHmmss')}.csv.txt
    • 文字コードがutf8のCSVファイルとして作成されるため、Excelで文字化けせず開きやすいようあえて.txtとしています
  • ファイルコンテンツ
    • @{body('CSV_テーブルの作成')}

 

関連ページ

sasami-axis.hatenablog.com

 

さいごに

今回の手段は自分のメールボックスだけで使えます。共有メールボックスやMicrosoft365グループのメールボックスのメールの場合は、フラグを付ける機能がなかったり、To Doにタスクを追加することができませんでした。解決策を思いついたらまた記事にします。