Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@kura_yu

【PowerApps】PowerAppsで添付ファイル付きのメールを送信する

・はじめに

PowerAppsで添付ファイル付きのメールを送信する方法を説明します。

・必要なコネクタ

今回添付ファイル付きのメールを送るために最低限必要なコネクタは下記の通りです。

  • Office365Outlook コネクタ
  • SharePoint コネクタ ※カスタムリスト必須

・メール送信するための事前準備

まずはメールを送るために必要な「宛先」「件名」「本文」を記載するためのテキストボックスと「送信」ボタンを用意します。

この記事ではメール送信に使用する各パーツ名を下記のように定義します。
宛先:ToTextBox
件名:SubjectTextBox
本文:BodyTextBox

送信ボタンの処理は後ほど設定するため、今は各パーツの配置のみでOKです!
image.png

・フォームから「添付ファイル」フィールドをコピーする

添付ファイルを送信するには、ファイルを添付するための列(フィールド)が必要です。
その列はどのパーツを利用すればいいと思いますか?

ご存知の方も多いと思いますが、SharePointのカスタムリストには添付ファイルを登録するための列が存在しています。
そうです、カスタムリストの添付ファイル列を利用してメールを添付します!!

[挿入] - [フォーム] - (フォーム内)[編集] - (データソース)[なし] - [SharePointコネクタ] を順にクリックします。
image.png

Formにフィールドが複数追加されるので、「添付ファイル_DataCard」内の「DataCardValue」をコピーし空きスペースに貼り付けます。
image.png

添付ファイルのDataCardValueを空いたスペースに貼り付けたら、Formは不要なので削除します。
image.png

コピーしたDataCardValueにエラーが発生しているので下表の通りに修正していきます。

プロパティ名 修正前 修正後
.Items Parent.Default (空白)
.Tooltip Parent.DisplayName ""
.DisplayMode Parent.DisplayMode DisplayMode.Edit
.BorderColor If(IsBlank(Parent.Error), Parent.BorderColor, Color.Red) Black

添付ファイルのDataCardValueがコピーできたので、SharePointコネクタは不要になります。
削除しておきましょう。
image.png

・送信ボタンにメール送信処理を追加する

ここまでで、画面の準備は整いました。
後は、添付ファイルをどうやってメール送信するか、です。

今回は、Office365Outlookコネクタの「Office365Outlook.SendEmailV2」を利用してメール送信を行います。
Office365Outlook.SendEmailV2の構文は下図の通りです。
image.png

送信ボタンのOnSelectに下記コードを入力してください。
※ToTextBox、SubjectTextBox、BodyTextBox、DataCardValue12_1は用意したパーツ名に合わせて変更してください。

Office365Outlook.SendEmailV2(
  ToTextBox.Text,
  SubjectTextBox.Text,
  BodyTextBox.Text,
  { Attachments: AddColumns(
    RenameColumns( DataCardValue12_1.Attachments ,"Value","ContentBytes"),
    "@odata.type",""
  )}
)

・実行してみる

それでは、各項目入力し添付ファイルを付けて送信してみましょう。
image.png

送信結果
image.png

これで完成です!!

・最後にちょっとだけ解説

送信ボタンのOnSelectに設定したソースコードについて解説します。
コード中のAttachments:で添付ファイルの情報を扱います。
Attachmentsが扱えるのはTable値です。
下記リンク先を確認すると、Attachements で必要なレコードは3つ。
 参考:ファイルが添付されたメッセージを送信する

  • Name
  • ContentBytes
  • @odata.type

しかし、添付ファイル列の「DataCardValue12_1.Attachments」には Name と Value しかありません。
image.png

このままでは添付ファイルを送ることはできないので、Addcolumns と RenameColumns を利用してレコード「Value」を「ContentBytes」に修正し、「@odata.type」を追加します。

下図の通り必要なレコードが準備できました。これで添付ファイルを送信できます。
image.png

・参考

PowerApps Email Attachments with the office 365 connector and attachment control
https://youtu.be/Ws6xEr5N1cU

・宣伝

私が所属する会社(Funkit)でブログを運用しています。
Teamsの活用方法、EMSを利用したセキュリティの強化、Power Appsアプリの事例紹介などを掲載しています。

Share!ビジネス ビジネスに役立つクラウドサービス利活用術をシェアするブログ(随時更新中)
https://blog.funkit.jp/
image.png

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kura_yu
IT企業に勤めOffice365の研究に勤しむサラリーマン。 コーヒーを飲みながらのんびりするのが好き。 半分仕事、半分趣味でPower AppsやPower Automateの開発を行っています。 構築時に活用した今後役に立ちそうな技術を備忘録的に更新していく予定です。 Twitter⇒https://twitter.com/kurattyo

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?