2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Apps でメールの下書きを作成する方法

Last updated at Posted at 2025-08-20

ごきげんよう、百合宮桜(Miyu)です(≧▽≦)
最近、Office 365 Outlook コネクタにメールの下書き関係のアクションが増えました。これらを使って、Power Apps でメールの下書きを作成する方法を紹介します。

image.png

Power Automate のアクション名 Power Apps での名称
メールメッセージを下書きする Office365Outlook.DraftEmail
メールメッセージの下書きを更新する Office365Outlook.UpdateDraftEmail
メールメッセージの下書きを送信する Office365Outlook.SendDraftEmail

メール送信画面の作成方法

Power Apps でメール送信画面を作りたい時は「電子メール」テンプレートが便利です。新しい画面 > 電子メール をクリックするだけで簡単にメール画面が作成できます。

image.png

電子メールのテンプレートでは送信アイコンの OnSelect プロパティにメールを送信する式が入っています。

image.png

image.png

ここを下書きに変更するか、別に下書き作成用のボタンを作る必要があります。今回は別にボタンを作成して作っていきます。
image.png

下書きの作成方法

下書き作成ボタンと添付する画像をアップロードする「画像の追加」コントロールを配置して

image.png

下書き作成ボタンの OnSelect プロパティに以下の式を書きました。

Set(_emailRecipientString, Concat(MyPeople, Mail & ";"));           
Office365Outlook.DraftEmail(
    _emailRecipientString, //宛先(To)
    TextEmailSubject1.Text, //件名
    TextEmailMessage1.Text, //本文
    {
        Importance:"Normal",//重要度
        Attachments:{ContentBytes:UploadedImage1.Image,Name:GUID()&".jpg"},//添付ファイル
        Cc:User().Email, //CC
        Bcc:User().Email //BCC
    }
);         
Reset(TextEmailSubject1);           
Reset(TextEmailMessage1);           
Clear(MyPeople)

_emailRecipientString は宛先を格納する変数です。
宛先に選択したメールアドレスは MyPeople というコレクションに格納されているので、これらを ; でつなげたテキストを作成しています。
そして下書きを作るのに必要な情報を Office365Outlook.DraftEmail( のあとに記述しているという状態です。記述の順番は補助機能で出て来たものに沿いましょう。

image.png

Power Automate で詳細パラメーターに含まれるものは、配列として格納しなければいけないようです。

image.png

下書き作成ボタンを押すと自分の Outlook メールの下書きに以下のようなメールが保存されます。

image.png

下書きの更新と送信について

下書きを更新 or 送信するには MessageId が必要です。
現在、Office 365 Outlook コネクタに下書きの一覧を取得するような機能はありません。その為、Power Apps から下書きを呼び出すには下書き作成時にSharePoint Lists などに MessageId を保存しておく必要があります。

image.png

MessageId を取得するには Office365Outlook.DraftEmail の式の戻り値を変数に格納するのが簡単です。その為、以下のように式を修正する必要があります。

Set(_emailRecipientString, Concat(MyPeople, Mail & ";"));
Set(MessageData,           
    Office365Outlook.DraftEmail(
        _emailRecipientString, //宛先(To)
        TextEmailSubject1.Text, //件名
        TextEmailMessage1.Text, //本文
        {
            Importance:"Normal",//重要度
            Attachments:{ContentBytes:UploadedImage1.Image,Name:GUID()&".jpg"},//添付ファイル
            Cc:User().Email, //CC
            Bcc:User().Email //BCC
        }
    )
);
Patch(
    MessageIdを保存する SharePoint Lists,
    {
        Title:MessageData.Subject,
        MessageId:MessageData.Id
    }
);
Reset(TextEmailSubject1);           
Reset(TextEmailMessage1);           
Clear(MyPeople)

ただ MessageId を指定しても以前書いた件名や本文を呼び出せるわけではないので、以前書いたものを見ながら修正するということを実現するにはひと工夫いるかと思います(このあたりは時間がある時に別記事で……💦)

終わりに

いかがでしたか?
以前は GraphAPI or デスクトップフロー を利用しないとできなかった下書き保存がとても簡単にできるようになりました。

  • 社外へのメールは自動化NGだが、せめて下書きを作るまでは自動化したい
  • 特定の宛先に送る時は上長の承認が必要

という時に結構役立つ機能かと思います。
ぜひ活用してみてくださいね!

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?