はじめに
メールを保存する
証跡を残す文化には必要かもしれませんね。
Power Automate
でメールのエクスポート (V2) アクションが存在します。
Power Automate必須の作業に感じていましたが、Power Apps
だけでも、メールの保存が完結できました。
上記について、Qiitaに残していきたいと思います。
前提
Power Automate
を使わずに、メールファイルを保存するためには
メールファイルの格納先をSharePoint Lists
に設定する必要があります。
上記以外の方法が、現段階では私は見つけられていません。
ファイル コンテンツを保存できるアクションが、Power Apps
のCollect関数
以外、見つけられていないためです。
実際に作ってみる
作成したアプリは下記のようなものです。
メールはChatGPTで作成した架空のものです
作成手順
Power Appsで、下記の3つのデータに接続します。
- Office 365 Outlook
- SharePoint
- Office 365 Users
レイアウトは、いつもの感じです。
- ヘッダー
- サイドバー
- メインセクション
テンプレートが非常にクオリティーが高いので、そちらを活用します。
ギャラリーコントロール
ギャラリーコントロールのデータソースは下記のとおりです。
Office365Outlook.GetEmails({fetchOnlyUnread:false})
名前 | パラメーター | データ型 | 説明 |
---|---|---|---|
未読のメッセージのみ取り込む | fetchOnlyUnread | boolean | 未読の電子メールのみを取得 |
フォルダー | folderPath | string | 電子メールを取得するメール フォルダー (既定: 「Inbox」) |
添付ファイルを含む | includeAttachments | boolean | true に設定すると、電子メールと共に添付ファイルのコンテンツも取得される |
検索クエリ | searchQuery | string | メールをフィルター処理する検索クエリ、パラメーターの使用方法 |
上詰め | top | integer | 取得するメールの件数 (既定: 10, 最大: 25) |
スキップ数 | skip | integer | スキップするエントリ数 (既定値 = 0) |
ポイントはfetchOnlyUnread:false
です。こちらを設定しないと未読の電子メールのみを取得
となってしまい、戸惑います。
フォルダで制限するときはfolderPath
で対象を指定しましょう。
だれのアカウントに接続するのか
Outlookをデータソースにすると、Power Appsを作成した人のメールが表示されるのでは・・・?と思いますが、Power Appsを使用しているユーザーのアカウントのデータが表示されます。
あくまでログインしているアカウントのメールが表示されます。
自分の予想以上のアクセス権限は発生しません。
Office365Outlook.ExportEmailV2 - メールのエクスポート (V2)
- メールをBlobとして変数に保存する
- SharePoint Listsに添付ファイルとしてメールファイルを保存する
上記の二段階で実施します。
SharePoint Listsに添付ファイルとしてメールファイルを保存するにことについては、Microsoft MVPのコルネさんのブログが非常に参考になります。
Office365Outlook.ExportEmailV2
アクションの戻り値はBlob
です。
UpdateContext({data:Office365Outlook.ExportEmailV2(<メールID>)});
メールコンテンツをコンテキスト変数
に格納して、SharePoint Listsに、項目を作成して、添付ファイルとして追加します。
// 1. コンテキスト変数にメールファイルを格納
UpdateContext({data:Office365Outlook.ExportEmailV2(galMails.Selected.Id)});
// 2. SharePoint Listsに項目を作成、添付ファイルとして追加
Collect(mailArchive,
{
タイトル: GUID(),
添付ファイル:
Table(
{
DisplayName: Text(Now(),"yyyymmddHHmmss") & ".eml",
Id: GUID(),
Value: data
}
)
}
)
添付ファイル:
の部分で、配列でファイルを追加します。
実行すると・・・
さて、実行をすると添付ファイル込みで、SharePoint Listsにメールが保存されていることがわかります。
おわりに
Power Appsだけでもいけるものですね。
Microsoft MVPにちゃっかりなれました。
よかったら祝ってください。