【初心者向け】RPA Power Automate DesktopからGmail送信

Power Automate Desktop RPA ブログ

RPA_PowerAutomateDesktop_Gmail送信

こんにちは!!Apachanです。

今回はPower Automate DesktopからGmail送信するフローを作成します。

前回のSlackのWebhookと同じように、Gmailを起動せずメール送信する方法で実施します。

実務の中でPower Automate Desktopを利用して複数メールを送信する機会がありましたので、その際に実践した方法の紹介となります。

目次
1.前提
– 作成するフロー
– 想定利用シーン
– 事前準備
– 身につくこと
2.Power Automate DesktopからGmail送信
– メールの送信
– 実行結果
– エラー原因と解消法
– 再実行
3.Excelファイルからメール送信情報を参照
– 参考情報
– フロー作成
– 実行結果
4.まとめ

前提

作成するフロー

Power Automate DesktopからGmail送信するフローを作成します。

手作業でメールを送る際には必ずブラウザ、もしくはメールソフトを起動する必要がありますが、今回はExcelから情報を取得して直接Gmailサーバーに必要情報を送付してメッセージを送信します。

※ イメージ図
PowerAutomateDesktopからGmail送信するフロー

一般的にはSMTPサーバーがメール送信の役割を担っています。

メール送信の際にSMTPサーバーのアドレスポート番号などの最低限必要な情報があれば、詳細な仕様の理解がなくともPower Automate Desktopで扱うことは可能です。

SMTPサーバーの詳細が気になる方は、以下リンクなどで確認してみてください。

想定利用シーン

メール送信の自動化は業務上様々な利用シーンがありあす。

業務上必要なレポートをメールで送信したり、データ抽出・加工の作業完了メールの送信などは一般的です。

組織内のコミュニケーションはSlackなどのコミュニケーションツールに集約されつつありますが、外部のお客様との接点はメールが依然として主として残っています。

したがって、メルマガなどメールを一斉配信するシーンなどでは活用できるように思います。

事前準備

以下3点は事前準備が必要です。

① Power Automate Desktopの起動

全くPower Automate Desktopを触ったことない方は以下ブログを参考にしてください。

Power Automate Desktopのインストールから新規フローの作成方法まで紹介してあります。

今回はPower Automate Desktopを新規で起動したところからスタートします。

② SMTPサーバーの情報

今回はGmailのSMTPサーバーを利用して進めていきますが、Gmail以外も同じように設定してメール送信することは可能です。

Gmail以外のSMTPサーバーの情報は提供会社の方で開示されているケースが多いです。

本ブログのGmailのSMTPサーバーの情報は以下リンクを参照します。

③ メール情報の参照ファイル

複数のメール情報を参照するためのExcelファイル、メーリングリスト.xlsxをデスクトップに配置します。

メーリングリストをデスクトップに配置

メーリングリスト.xlsxの中身は下図のようになります。

A列の①は宛先となるメールアドレス、B列の②は件名、C列の③は本文となり、1行目の項目名を除外した2行目以降がメール送信対象となります。

行毎にメール送付に必要な情報があるので、この情報を利用してメールを送信していきます。

メーリングリストの中身

身につくこと

Power Automate DesktopにてSMTPサーバーを利用したメール送信の方法を理解することができます。

また、実務で想定されるExcelファイルから情報を参照して複数メールを送信する方法も後半のセクションで紹介していきます。

Power Automate DesktopからGmail送信

メールの送信

① フローの作成

新規フローを作成します。

新規フローの作成

② 「メールの送信」アクションを選択

「メールの送信」アクションを選択します。

メールの送信アクションの利用

③ メールの送信アクションのパラメーター設定(SMTPサーバー)

「①SMTPサーバー」と「②サーバーポート」には以下情報を入れてください。
※ 事前準備のリンクより参照した情報となります。

SMTPサーバー:smtp.gmail.com
サーバーポート:465

メールの送信アクションのパラメーター設定①

「①SSLを有効にする」と「②SMTPサーバーには認証が必要」は共に有効にしてください。

「③ユーザー名」と「④パスワード」には、Gmailにログインする際の情報を入力してください。

続いて「全般」の情報を入力しますので⑤全般を押下してください。

メールの送信アクションのパラメーター設定②

④ メールの送信アクションのパラメーター設定(全般)

「全般」では実際にメール送信する情報を入力していきます。

下図を参考に①~⑤の情報を入力して、最後に⑥保存を押下してください。

メールの送信アクションのパラメーター設定③

メール送信のパラーメーター設定の詳細はマイクロソフトのドキュメントを参照ください。

実行結果

正常にメールの送信アクションが反映されたら、フローの実行を試してみます。

アクションの反映とフローの実行

エラーが発生して処理に失敗しました。

画面下部のエラーレコードにマウスカーソルを置くと右の方に目のようなアイコンが表示されます。

こちらをクリックするとエラー詳細を確認することができます。

エラー発生と詳細確認方法

ここからエラーの詳細を確認することができます。

見たところ、どうやらユーザーネーム、パスワードが受け入れられないとのメッセージが出ています。

エラー詳細

エラー原因と解消法

2つの選択肢

今回のエラー原因は、SMTPサーバー初期設定でGmail以外の外部からのアクセスが全て受けれられない状態になっていることでした。

エラーを解消するためには以下2つのいずれかの方法でGmail設定を変更する必要があります。

① 安全性の低いアプリのアクセスの有効化
② 2段階認証プロセスを有効にしてアプリパスワードを発行

今回はサンプル程度のデモとなるため①の方法で設定を進めていきます。

ただし、実際の業務で定常的に利用する際には②の方法を選択した方がセキュリティ的には安全です。

メールアドレスとパスワードが第三者に漏洩した段階で悪用される懸念があります。

②の方法を行う際には以下リンクを参照してください。

安全性の低いアプリのアクセスを有効に変更

Googleアカウントにアクセスしてセキュリティを選択します。

セキュリティ設定

下方向へスクロールすると、安全性の低いアプリのアクセスがあります。

こちらの設定を有効にしてください。

安全性の低いアプリのアクセス設定変更前

設定が有効に変更されると下図のように反映されます。

安全性の低いアプリのアクセス設定変更後

再実行

設定変更後に再度フローを実行したところ、下図のようにメール送信が完了しました。

実行結果

Excelファイルからメール送信情報を参照

参考情報

Excelファイルより情報を参照する方法は過去取り扱っているため、詳細な説明は以下リンクを参考にしてください。

フロー作成

① Excelの起動

Excelの起動からスタートします。

Excelの起動アクション

①のところでは、次のドキュメントを開くを選択してください。

選択後に、②のところでドキュメントパスが選択できるようになります。

事前準備のところでデスクトップ上に配置したメーリングリスト.xlsxを選択します。

起動したExcelファイルは生成された変数、ExcelInstanceを指定することで後続の処理で扱うことができるようになります。

Excelの起動アクションのパラメーター設定

② Excel ワークシートから最初の空の列や行を取得

続いて有効なセルの範囲を取得するために、最初の空の列と行を取得します。

最初の空の列と行が分かれば、その一つ前までがデータがある有効な列と行ということで判別できます

Excel ワークシートから最初の空の列や行を取得アクション

①のところには初期状態で下図のような値が入っているので変更する必要はありません。

生成された変数は後続の処理で以下のように利用します。

最初の空の列 FirstFreeColumnデータがある最後の列 FirstFreeColumn – 1
最初の空の行 FirstFreeRowデータのある最後の行 FirstFreeRow – 1

Excel ワークシートから最初の空の列や行を取得アクションのパラメーター設定

③ Excel ワークシートから読み取り

有効なデータ範囲を取得する準備が整いましたので、ワークシートの読み取りを行います。

Excel ワークシートから読み取りアクション

下図参考に①~⑥を設定してください。

④, ⑤のところで有効なデータの範囲を指定しています。

また、⑥を有効にすることで不要な1行目の項目名を対象から除外しています。

取得したデータ範囲はExcelDataとして扱うことができます。

Excel ワークシートから読み取りアクションのパラメーター設定

以下3つのアクションが反映していればOKとなります。

Excelファイル関連の一連のアクション

④ For each

有効なデータをExcelDataとして取得できましたので、次は行毎のデータを処理するために繰り返し処理を行います。

For eachを利用して行毎の処理を実施します。

Foreachアクション

ExcelDataから1行1行CurrentItemに渡していきます。

Foreachアクションのパラメーター設定

※ 生成された変数のイメージ図

アクションを利用する過程の中でいくつか変数が生成されましたので、実際のデータをもとに何を参照しているものか一旦整理します。

どの変数が何を指しているかイメージを持つことは非常に重要です。

取得データのイメージ図

CurrentItemから宛先や件名を参照する際は以下のような方法で指定する必要があります。

CurrentItemは行全体の情報を持つ配列という変数になります。

CurrentItem[0]宛先
CurrentItem[1]件名
CurrentItem[2]本文

⑤ メールの送信

行毎に情報を取り出す準備が整いましたので、For eachとEndの間にメールの送信アクションを配置します。

メールの送信アクションの位置変更

ダブルクリックをしてメールの送信のパラメーターを変更します。

メールの送信アクションのパラメーター変更

繰り返し処理に対応するために変動する箇所を下図のように置き換えます。

送信先(宛先)、件名、本文の説明はイメージ図のところで説明した通りとなります。

メールの送信アクションのパラメーター設定

実行結果

フローが出来上がったので実行します。

フロー実行

無事に3通のメール送信が完了しました。

メール送信成功

まとめ

メールを自動化する処理はRPAの典型的な事例のひとつです。

手作業を前提としたストーリーでフローに落とし込むと、処理が複雑化したり、安定化しない懸念が出てきます。

SMTPサーバーを利用する方法は直接サーバーに情報を送ることができるため処理は安定します。

セキュリティ上の問題で利用できない企業も中にはありますが、利用できる環境であればご活用いただけると幸いです。

Apachan

約10年間の代理店営業を経験した後にITに興味を持ちプログラミングを習得。営業で培ったコミュニケーション力を活かしつつ、様々な現場の業務改善に日々奮闘中。
RPAに限らず、SaaSやGAS, VBAなど手段はクライアントの方と考えながら進めます。
RPAやプログラミング関連の書籍も執筆しました。
お仕事のご相談などお気軽にtwitterDMまでご連絡ください。

関連記事