目次
こんにちは。sinyです。
この記事ではPowerAppsとOutlookメールの基本的な連携方法についてまとめました。
PowerApps画面上からOutlookへメールを送信する①
PowerApps画面上に用意したメール送信ボタンを押すとOutlookメールが送信されるシンプルなメール送信機能の実装手順から説明します。
まず最初にAppのOnStartに以下を設定します。
Set(_userName, User());
User()でアプリを利用しているユーザ情報を取得し_userName変数にユーザ情報を格納しておきます。
次に画面内にボタンコントロールを追加しOnSelectプロパティに以下の関数を設定します。
Microsoft365Outlook.SendEmailV2(_userName.Email,"タイトル","本文です。")
Microsoft365Outlook.SendEmailV2関数を使うことでメール送信を行うことが出来ます。
Microsoft365Outlook.SendEmailV2の使い方は以下の通りです。
今回は自分宛てにメールを送信するためにuserName.Emailで現在アプリを利用しているユーザのアドレスを取得して宛先に指定しています。
以上で、メール送信ボタンを押すとメールが送信され自分のOutlookメールアドレス宛にメールが届きます。
PowerApps画面上からOutlookへメールを送信する②
次は、画面上で宛先アドレス、タイトル、本文を入力し、入力した内容をメール送信してみます。
テキスト入力を3つ追加し、コントロール名称を以下の名前に変更しておきます。
宛先アドレス用のテキスト入力:inputTo
タイトル用のテキスト入力:inputSubject
本文用のテキスト入力:inputBody
ボタンを追加してOnSelectプロパティに以下を設定します。
Microsoft365Outlook.SendEmail(inputTo.Text, inputSubject.Text, inputBody.Text)
以上で設定は完了です。
下図のように宛先アドレス、タイトル、本文を入力後に送信ボタンを押すと画面上で入力した情報を元にメールが送信されます。
添付ファイル付きのメールを送信する
次は少し応用でPowerApps上の画面で添付したファイルを添えてメールを送信する方法です。
[挿入] → [フォーム] -[編集] を選択してフォームを追加します。
画面右側のデータソースから SharePointで検索してSharePointコネクタを選び、何でもいいのでSharePoint側に存在しているリスト名を選択して接続します。
編集フォームが追加されますが、その中に以下のような添付ファイルのコントロールが存在しているので、「コピー」→「貼り付け」で画面内に添付ファイルコントロールを追加しておきます。
また、コントロールの名称をDataCardValueにしておきます。
追加した編集フォームは不要なのですべて削除しておきましょう。
先ほどの3つの入力テキスト(宛先、タイトル、本文)に加えて添付ファイルの項目が追加された状態(下図)になります。
次に「送信」ボタンのOnSelectプロパティを以下のように変更します。
Microsoft365Outlook.SendEmailV2( inputTo.Text, inputSubject.Text, inputBody.Text, { Attachments: AddColumns( RenameColumns( DataCardValue.Attachments ,"Value","ContentBytes"), "@odata.type","" )} )
以下の部分が追加されています。
{ Attachments: AddColumns( RenameColumns( DataCardValue.Attachments ,"Value","ContentBytes"), "@odata.type","" )}
添付ファイルを指定するには以下のパラメータを追加する必要があります。
件名
ContentBytes
@odata.type
ちなみにこのパラメーターはテーブルとして構成されています。
これらはAttachments:として添付ファイルの情報を扱います。
また、Addcolumns と RenameColumns を利用してレコード「Value」を「ContentBytes」に修正し、「@odata.type」を追加しています。
この辺は以下の記事を参考にしました。
以上で、添付ファイル付きのメールをPowerAppsの画面上から送信することが出来ます。
Outlookメールの内容をPowerAppsで表示
次はPowerApps画面上でOutlookメールの内容を一覧表示する方法です。
[挿入] → [ギャラりー] から任意のギャラリーを追加後、追加したギャラリーのItemsプロパティに以下を設定します。
Microsoft365Outlook.GetEmails({fetchOnlyUnread:false})
Microsoft365Outlook.GetEmails関数を使うことでOutlookの受信メール情報を取得することが出来ます。
また、ギャラリーのレイアウトを「タイトル、サブタイトル、本文」に変更し、各フィールドのTextプロパティをThisItem.Id、ThisItem.Subject、ThisItem.BodyPreviewに変更しておきます。
以上でOutlookのメール一覧がギャラリーに表示されます。
Outlookメールの最新N件だけ表示したい場合
最新N件だけ表示したい場合はtopオプションを追加することで実現できます。
例えば最新3件だけのメールを一覧表示した場合は以下のような関数を設定します。
Microsoft365Outlook.GetEmails({fetchOnlyUnread:false, top:3})
Outlookメールの「送信済みアイテム」の最新N件だけ表示したい場合
今度は、受信メールではなく送信済みメールを表示したい場合です。
この場合はfolderPathオプションを指定することで取得対象を切り替えることが出来ます。
Outlookメールの「送信済みアイテム」の最新3つを取得したい場合は以下の関数を設定します。
Microsoft365Outlook.GetEmails({folderPath:"送信済みアイテム",fetchOnlyUnread:false, top:3})
Outlookメールのうち特定文字列を含むメールだけ表示したい場合
次は、特定文字列を含んだメールだけを表示したい場合です。
この場合はsearchQueryオプションを使うことで実現できます。
例えば、Outlookメールの「送信済みアイテム」のうち「PowerApps」を含むメール最新3つだけを表示したい場合は以下の関数を設定します。
Microsoft365Outlook.GetEmails({folderPath:"送信済みアイテム",fetchOnlyUnread:false, top:3,searchQuery:"powerapps"})
OutlookメールのN件目以降を表示させたい場合
最後に、最初のN件を除外して一覧表示したい場合です。
この場合はskipオプションを指定することで実現できます。
例えば、Outlookメールの「送信済みアイテム」の最初の2つを除いた最新3つを取得したい場合は以下の関数を設定します。
Microsoft365Outlook.GetEmails({folderPath:"送信済みアイテム",fetchOnlyUnread:false, top:3,skip:2})
Outlookメールを削除したい場合
PowreApps画面上からOutlookメールを削除することもできます。
先ほどのメール一覧表示のギャラリーに削除ボタンを追加し、削除ボタンのOnSelectに以下を設定します。
Microsoft365Outlook.DeleteEmailV2(EmailID.Text)
Microsoft365Outlook.DeleteEmail関数を使うことで引数に指定したIDのOutlookメールを削除することが出来ます。
EmailIDはギャラリーで表示しているメールのIDのコントロール名で、TextプロパティにThisItem.Idを設定している前提です。
メールを開封済みにしたい場合
その他にも様々な機能があります。
例えば、メールを開封済みにしたい場合はMicrosoft365Outlook.MarkAsRead関数が使えます。
Microsoft365Outlook.MarkAsRead(EmailID.Text)
他にも様々な関数が用意されていますので、興味がある方は以下を参考にしてみてください。
以上、「PowerAppsからOutlookメール情報を取得する方法」でした。