Power AppsからPower Automateを使用せず、Outlookからメールを送るようにすることができます。
今回はPower Automateを使用せず、Power Appsから直接操作してみます。
Office 365 Outlookに接続する
まず「データの追加」からOffice 365 Outlookのコネクタを追加します。
Office 365 Outlookコネクタは標準コネクタのため、追加のプレミアムライセンスなしで利用可能です。
選択後、「接続」ボタンをクリックしてください。
メールを送付する
今回は件名とメッセージを入力できるテキスト入力を作成します。
宛先は固定で、決まった人にメールを送付するようにします。
もし人物を検索して送付するようにしたい場合は、以前書いたこちらの記事を参考に人物を検索するテキスト入力を作成し、検索できるようにしてください。
「件名」のテキストボックスの名前はinputSubjectに変更し、「メッセージ」はinputMessageとします。
[Send]ボタンのOnSelectに下記を入力します。
SendEmailV2はメールアドレス、件名、メッセージが必須項目になります。
Office365Outlook.SendEmailV2(
"ramune@dotcom.com",
inputSubject.Text,
inputMessage.Text,
{Importance: "Normal"}
)
複数の宛先にメールを送る
宛先を複数にする場合は、セミコロン(;)で区切ってください。
ギャラリーやテキストボックス、コンボボックスに入っている複数の宛先を指定する場合は、Concat関数を使用してセミコロンで区切ります。
コンボボックス(cmbAddress)に複数の宛先が入っている場合は、下記のようになります。
Concat(cmbAddress.SelectedItems, ";")
CC・BCCを指定する
CCやBCCで宛先を追加したい場合はオプションになるので、{ }で囲むと追加できます。
Office365Outlook.SendEmailV2(
"ramune@dotcom.com",
inputSubject.Text,
inputMessage.Text,
{
Importance: "Normal",
CC: "ramune2@dotcom.com",
BCC: "ramune3@dotcom.com"
}
)
予定表にイベントを追加する
Outlookの予定表にイベントを追加する場合は、V4CalendarPostItemを使用します。
V4CalendarPostItemの必須項目は、次のとおりです。
- カレンダーID(table)
- 情報カテゴリ(subject)
- 開始時刻
- 終了時刻
- タイムゾーン
任意の項目には、次のようなものがあります。
- 必須出席者
- 任意の出席者
- リソースの出席者
- 本文
- 場所
- 重要度
- 終日イベントか否か
- 繰り返し
- 選択した曜日
- 繰り返しの終了日
- 発生回数
- アラーム(reminderMinutesBeforeStart)
- アラームオン(isReminderOn)
- 表示方法(showAs)
- 要求された応答(responseRequested)
- 秘密度(sensitivity)
いくつかは翻訳が分かりづらいため、詳しいパラメータについてはMicrosoft Learnを参照してください。
カレンダーIDを取得する
まずカレンダーIDを取得します。
分かりにくいですが、ここではカレンダーの種類を選択します。
今回は予定表に書き込むため、変数にカレンダータイプを格納します。
Set(
CalendarType,
LookUp(
Office365.CalendarGetTables().value,
DisplayName = "予定表"
).Name
)
開始時刻と終了時刻を設定する
開始時刻と終了時刻を設定します。
タイムゾーンがUTCの場合、そのままの時間を入力すると日本時間とずれてしまうため、DateAdd関数を使用して調整します。
例えば開始時刻を9時、終了時刻を10時とする場合は、それぞれ次のように指定します。
DateAdd("9:00", 9, Hours)
DateAdd("10:00", 9, Hours)
タイムゾーンには日本のタイムゾーンを指定します。
{TimeZone: "(UTC+09:00) Osaka, Sapporo, Tokyo"}
これらを組み合わせると、次のようになります。
Office365Outlook.V4CalendarPostItem(
CalendarType,
"Subject",
DateAdd("9:00", 9, Hours),
DateAdd("10:00", 9, Hours),
{
TimeZone: "(UTC+09:00) Osaka, Sapporo, Tokyo",
Importance: "Normal",
Body: "Body",
ShowAs: "Busy"
}
);
Importanceでは、"High"、"Normal"、"Low"を指定できます。
ShowAsでは、予定が入っている時間を「予定あり」「仮の予定」「空き時間」などに設定できます。
「予定あり」とする場合は"Busy"を指定してください。