UiPath

【UiPath】メール送信と受信(Outlook,Microsoft365,IMAP,POP,SMTP)

UiPath Studioの開発では、取引先からのメール送信や受信、ロボットの実行完了時、エラー発生時にメールの送信や受信を行いたい場合があります。

この記事では、Outlook,Microsoft365,IMAP,POP,SMTPによるメール送信と受信方法について、解説します。

 

ペンギンさん
ペンギンさん
長い記事なので、参照したい章をクリックもしくはタップしてください。

メール送信・受信方法

メールの送受信方法は、アプリ指定(Outlook)、サービス指定(Microsoft365,Exchange,IBM Notes)、プロトコル指定(IMAP,POP,SMTP)、UI操作(任意のソフトウェアやWebメールを操作)があります。

メール送受信方法

分類 対象 プロセスの安定度
(外部の変化に強いか)
セキュリティ この記事でのサンプル
アプリ指定 Outlook
サービス指定 Microsoft365
Exchange
IBM Notes
プロトコル指定 IMAP
POP
SMTP
UI操作 任意のソフトウェア
任意のWebメール

 

ペンギンさん
ペンギンさん
プロトコル指定は、サーバー,ユーザ名(メールアドレス),パスワードをアクティビティに設定する必要があるため、セキュリティ的にはあまり推奨できません。
ラッコくん
ラッコくん
UI操作は、クリックやキーボードでメールソフトウェアやWebメールを操作するため、ソフトウェアやWebシステムの変化により、動作しなくなる可能性が高く、プロセスの安定度は低いよ。

おすすめは、OutlookですOutlookに対してあらかじめメールの設定をしておけば、アクティビティへアカウントやパスワードを設定する必要がないためです。

Microsoft365を使用するのであれば、Microsoft365アクティビティの使用をおすすめします。

運用に応じて認証方法を変えられ、ReadやWrite権限を設定できるため、セキュリティの面で細かく指定できるからです。

 

Outlookアクティビティを使用してメール送信・受信

Outlookアクティビティは、アプリの連携 > メール > Outlook にあります。

Outlookアクティビティ

アクティビティ名 アクティビティの動作
Outlook メール メッセージを取得 (Get Outlook Mail Messages) Outlook からメール メッセージを取得します。
Outlook メール メッセージを移動 (Move Outlook Mail Message) Outlook メール メッセージを指定されたフォルダーに移動します。
Outlook メール メッセージを送信 (Send Outlook Mail Message) Outlook からメール メッセージを送信します。
Outlook メール メッセージを保存 指定されたフォルダーに Outlook メール メッセージを保存します。
Outlook メール メッセージを削除 Outlook のメール メッセージを削除します。
Outlook メール メッセージに返信 (Reply To Outlook Mail Message) Outlook を使用してメール メッセージに返信します。
Outlook メールのカテゴリを設定 指定したメール メッセージにカテゴリを割り当てます。
Outlook メールを既読/未読にする 指定されたメール メッセージを既読/未読にします。

 

Outlook メール メッセージを取得 (Get Outlook Mail Messages)

Outlookのメールを取得するのは、Outlook メール メッセージを取得 (Get Outlook Mail Messages) を使用します。

Outlook メール メッセージを取得の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 共通 表示名 アクティビティの表示名です。
タイムアウト (ミリ秒) エラーがスローされる前にアクティビティが実行されるまで待機する時間 (ミリ秒単位) を指定します。既定値は 30000 ミリ秒 (30 秒) です。
入力 メール フォルダー メッセージの取得元のメール フォルダーです。
アカウント 取得するメッセージへのアクセスに使用されるアカウントです。
オプション

フィルター 取得するメッセージに対するフィルターとして使用する文字列です。JET クエリまたは DASL クエリを受け入れます。
メッセージ ID でフィルター 指定したメッセージ ID に一致するメール メッセージのみを返します。設定した場合、[フィルター] オプションは無視されます。
開封済みにする 取得したメッセージを既読としてマークするかどうかを指定します。既定では、このチェック ボックスはオフになっています。
未読メッセージのみ 未読のメッセージのみを取得するかどうかを指定します。既定では、このチェック ボックスはオンになっています。
日付で並べ替え 日付でメール メッセージを並び替えます。利用可能なオプションは [NewestFirst] と [OldestFirst] です。
上限数 パラメーターの設定に応じて、最新または最も古いメッセージから取得するメッセージの数です。
出力
メッセージ MailMessage オブジェクトのコレクションとして取得したメッセージです
その他
プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。

 

サンプルプロセス
Outlookアクティビティでメールを取得し、1通目のFrom、件名、本文をログメッセージへ表示する。

・Outlook メール メッセージを取得 のプロパティ

・変数

ペンギンさん
ペンギンさん
「Outlook メール メッセージを取得」アクティビティでOutlookからメールをMailMessageのList型で抽出し、mailList(MailMessageのList型)の0番目のFrom,Subject,Bodyをログメッセージへ出力しています。
ラッコくん
ラッコくん
MailMessageのFrom,Subject,Body以外で出力できる項目は、以下参考の注釈を参考にするといいよ。

・対象Outlookのメール

・実行結果

 

Outlook メール メッセージを送信 (Send Outlook Mail Message)

Outlookでメールを送信するのは、Outlook メール メッセージを送信 (Send Outlook Mail Message)を使用します。

Outlook メール メッセージを送信 の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 添付ファイル 添付ファイル メール メッセージに追加する添付ファイルです。
添付ファイル コレクション メール メッセージに追加する添付ファイルの一覧を指定できます。このフィールドでは IEnumerable<String> 変数のみをサポートします。
共通 表示名 アクティビティの表示名です。
タイムアウト (ミリ秒) エラーがスローされる前にアクティビティが実行されるまで待機する時間 (ミリ秒単位) を指定します。既定値は 30000 ミリ秒 (30 秒) です。
メール 本文 メール メッセージの本文です。
件名 メール メッセージの件名です。
転送 メール メッセージ 転送するメッセージです。このフィールドは、MailMessage オブジェクトのみをサポートします。
入力 アカウント メッセージの送信に使用されるアカウントです。
送信代表名 メール メッセージの送信者の表示名です。このフィールドは、文字列と String 型変数のみをサポートします。
オプション

重要度 メール メッセージの重要度を指定します。
・低 (Low)
・標準 (既定)
・高 (High)
HTML本文 メッセージの本文が HTML 形式で記述されているかどうかを指定します。
下書き メッセージを下書きとして保存する必要があるかどうかを指定します。
返信先 返信に使用するメール アドレスです。
秘密度 メール メッセージの秘密度を指定します。
・標準 (既定)
・個人
・プライベート (Private)
・機密
受信者 Bcc メール メッセージの非表示の受信者です。
Cc メール メッセージのセカンダリ受信者です。
宛先 メール メッセージのメイン受信者です。
その他
プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。

 

サンプルプロセス
Outlookアクティビティでメールを送信する。

・Outlook メール メッセージを送信 のプロパティ

・実行結果

・送信されたメール

 

 

サービス指定(Microsoft365,Exchange,IBM Notes)

Microsoft365のメールアクティビティは、連携 > Microsoft > Office365 > Outlook にあります。※UiPath.MicrosoftOffice365.Activitiesのアクティビティパッケージをインストールする必要があります。MicrosoftOffice365アクティビティのインストールで説明します。

Exchange,IBM Notesのメールアクティビティは、アプリの連携 > メール にあります。

Microsoft365,Exchange,IBM Notesのメールアクティビティ

アクティビティの場所 アクティビティ名 アクティビティの動作
連携 > Microsoft > Office365 > Outlook メールのカテゴリを設定 (Set Mail Categories) Microsoft Graph UpdateメッセージAPIを使用して、カテゴリをメッセージに関連付けます。
メールを削除 (Delete Mail) Microsoft Graph Delete message APIを使用して、電子メールメッセージを削除します。
メールを取得 (Get Mail) Microsoft Graph GetmessageおよびListmessages APIを使用して、指定されたメールボックス(メールボックス)から一致するメッセージを取得します。
メールを移動 (Move Mail) Microsoft Graph MoveイベントメッセージAPIを使用して、メッセージ(Message)を別のメールフォルダー(DestinationFolder)に移動します。
メールを転送 (Forward Mail) Microsoft Graph Create forward and ForwardイベントメッセージAPIを使用して、追加のコンテンツ(Body)を含むメッセージ(Message)を1人以上の受信者(To)に転送します。
メールを送信 (Send Mail) Microsoft Graph CreatemessageおよびSendmail APIを使用して、メッセージ(BodyおよびSubject)を1つ以上の受信者(To、CC、およびBCC)に送信します。 このアクティビティには、メッセージに1つ以上の添付ファイル(添付ファイル)を含めるオプションもあります。
アプリの連携 > メール > Exchange Exchange メール メッセージを削除 (Delete Exchange Mail Message) Exchange メール メッセージを削除します。
Exchange メール メッセージを取得 (Get Exchange Mail Messages) Exchange からメール メッセージを取得します。
Exchange メール メッセージを送信 (Send Exchange Mail Message) Exchange からメール メッセージを送信します。
アプリの連携 > メール > IBM Notes IBM Notes メール メッセージを削除 (Delete IBM Notes Mail Message) IBM Notes から指定したメール メッセージを削除します。
IBM Notes メール メッセージを取得 (Get IBM Notes Mail Messages) IBM Notes からメール メッセージを取得します。
IBM Notes メール メッセージを移動 (Move IBM Notes Mail Message) IBM Notes メール メッセージを指定したフォルダーに移動します。
IBM Notes メール メッセージを送信 (Send IBM Notes Mail Message) IBM Notes を使用してメール メッセージを送信します。

 

MicrosoftOffice365アクティビティのインストール

MicrosoftOffice365アクティビティを利用するためには、「UiPath.MicrosoftOffice365.Activities」のアクティビティパッケージをインストールする必要があります。

「UiPath.MicrosoftOffice365.Activities」のアクティビティパッケージインストール手順

①[パッケージを管理]をクリック

②[すべてのパッケージ]をクリックし、検索窓に「UiPath.MicrosoftOffice365.Activities」を入力

③[UiPath.MicrosoftOffice365.Activities]をクリックし、[インストール]をクリック

④[保存]をクリック

⑤アクティビティの検索窓に「Office365」を入力し、アクティビティが表示されることを確認

以上で、[UiPath.MicrosoftOffice365.Activities]のアクティビティパッケージのインストールは完了です。

 

AzureADの設定

MicrosoftOffice365の各アクティビティは、「Microsoft Office 365 スコープ」内のシーケンスで動作します。

「Microsoft Office 365 スコープ」では、AzureADと認証を行っており、AzureADにアプリ登録やAPIのアクセス許可の設定をする必要があります。

ペンギンさん
ペンギンさん
認証の仕組みや具体的な設定手順は、以下参考のリンクを参照してください。

 

Microsoft Office 365 スコープの設定

MicrosoftOffice365の各アクティビティを動作させる「Microsoft Office 365 スコープ」の認証方法は、

  • 対話型トークン
  • 統合 Windows 認証
  • ユーザー名とパスワード
  • ApplicationIdAndSecret
  • ApplicationIdAndCertificate

の4種類あります。

認証方法の具体的な設定な詳細な説明は、以下参考のリンクを参照してください。

 

Microsoft 365のOutlookのメールを取得 (Get Mail)

Microsoft 365のOutlookメールの取得は、連携 > Microsoft > Office365 > Outlook の メールを取得 (Get Mail) を使用します。

メールを取得 (Get Mail)の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 共通 表示名 アクティビティの表示名です。
入力 アカウント (任意) 操作するメール アドレスです。現在のユーザーがアクセス権を持つ任意の共有メールボックスを含みます。設定しない場合、現在のユーザーのアカウントが使用されます。
メール フォルダー メッセージの取得元のメール フォルダーです。フォルダー名は、Outlook アプリケーションに表示されるとおりに入力します。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。
オプション HTML として取得 選択した場合、メッセージ本文が HTML 形式で返されます。
既読にする 選択した場合、返されるメッセージが既読に設定されます。
未読メッセージのみ 選択した場合、未読のメッセージのみが返されます。既定値は[True] です。
クエリ 返されるメールのフィルター処理に使用するクエリです。クエリが未指定の場合、すべてのメールが返されます。
上限数 取得するメールの最大数です。
出力 結果 ユーザーの受信トレイにあるすべてのメールを返します。このフィールドでは Office365Message[] 型の変数のみがサポートされています。

 

サンプルプロセス
Microsoft 365のOutlookのメールを取得し、1通目のFrom、件名、本文をログメッセージへ表示する。

・Microsoft Office 365 スコープ のプロパティ

・メールを取得 のプロパティ

・変数

ペンギンさん
ペンギンさん
「メールを取得」のアクティビティは、出力結果にOffice365MessageのArray型を出力します。

 

・取得対象のメール

・実行結果のログ

 

 

Microsoft 365のOutlookのメールを送信 (Send Mail)

Microsoft 365のOutlookメールの取得は、連携 > Microsoft > Office365 > Outlook の メールを送信 (Send Mail) を使用します。

メールを送信 (Send Mail)の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 添付ファイル 添付ファイル メールに添付するファイルのパスを含むコレクションです。
添付ファイルのコレクション このメッセージに添付するファイルのもう一つの一覧です。
共通 表示名 アクティビティの表示名です。
メール 本文 メールのメッセージ本文です。
件名 メールの件名です。
入力 アカウント (任意) 操作するメール アドレスです。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。
オプション 送信元 電子メールの送信元の電子メールアドレス。
重要度 メールメッセージの重要性。
HTML 本文 選択した場合、メールの本文が HTML 形式で解釈されます
下書き 選択すると、メッセージが下書きとして保存され、送信されません。
返信先 返信時に使用するメールアドレス。
受信者 Bcc Bcc 受信者に含めるメール アドレスのコンマ区切りのリストです。
Cc Cc 受信者に含めるメール アドレスのコンマ区切りのリストです。
宛先 メールの宛先に含めるメール アドレスのコンマ区切りのリストです。

 

サンプルプロセス
Microsoft 365のOutlookでメールを送信する。

・Microsoft Office 365 スコープのプロパティ

・メールを送信 のプロパティ

・実行結果のログ

・送信したメールのメール送信済みアイテム

 

プロトコル指定(IMAP,POP,SMTP)

IMAP,POP,SMTPのメールアクティビティは、アプリの連携 > メール にあります。

IMAP,POP,SMTPのメールアクティビティ

アクティビティの場所 アクティビティ名 アクティビティの動作
アプリの連携 > メール > IMAP IMAP メール メッセージを取得 (Get IMAP Mail Messages) 指定されたサーバーから IMAP メール メッセージを取得します
IMAP メール メッセージを移動 (Move IMAP Mail Message) IMAP メール メッセージを指定されたフォルダーに移動します。
アプリの連携 > メール > POP3 POP3 メール メッセージを取得 (Get POP3 Mail Message) 指定されたサーバーから POP3 メール メッセージを取得します。
アプリの連携 > メール > SMTP SMTP メール メッセージを送信 (Send SMTP Mail Message) SMTP プロトコルを使用して、メール メッセージを送信します。

 

IMAP メール メッセージを取得 (Get IMAP Mail Messages)

IMAP メール メッセージを取得は、アプリの連携 > メール > IMAP のIMAP メール メッセージを取得 を使用します。

IMAP メール メッセージを取得の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 共通 表示名 アクティビティの表示名です。
タイムアウト (ミリ秒) エラーがスローされる前にアクティビティが実行されるまで待機する時間 (ミリ秒単位) を指定します。
ホスト メール フォルダー メッセージの取得元のメール フォルダーです。
サーバー 使用するメール サーバー ホストです。
ポート メール メッセージの取得に使用されるポートです。
ログオン メール メッセージの取得に使用されるメール アカウントです。
パスワード メッセージの取得に使用されるメール アカウントのパスワードです。
安全なパスワード 使用しているメール アカウントのパスワードを、セキュリティで保護された文字列で表したものです。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。
オプション メッセージを削除 既読メッセージを削除対象としてマークする必要があるかどうかを指定します。
フィルター式 フィルター式に一致するメール メッセージのみを返します。
フィルター式の文字セット フィルター式に使用する文字セットの MIME 名です。
開封済みにする 取得したメッセージを既読としてマークするかどうかを指定します。
未読メッセージのみ 未読のメッセージのみを取得するかどうかを指定します。
日付で並べ替え 日付でメール メッセージを並び替えます。
セキュリティで保護された接続 接続に使用する SSL/TLS 暗号化を指定します。
上限数 [日付で並べ替え] パラメーターの設定に応じて、最新または最も古いメッセージから取得するメッセージの数です。
出力 メッセージ オブジェクトのコレクションとして取得されたメッセージです。

 

サンプルプロセス
IMAPでメールを取得し、最初のメッセージの件名と本文をログへ出力する。

・IMAP メール メッセージを取得 のプロパティ

・取得対象のメール

・実行結果のログ

 

POP3 メール メッセージを取得 (Get POP3 Mail Message)

POP3 メール メッセージの取得は、アプリの連携 > メール > POP3 のPOP3 メール メッセージを取得 を使用します。

POP3 メール メッセージを取得 の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 ログオン メール メッセージの取得に使用されるメール アカウントです。
パスワード メッセージの取得に使用されるメール アカウントのパスワードです。
安全なパスワード 使用しているメール アカウントのパスワードを、セキュリティで保護された文字列で表したものです。
ホスト サーバー 使用するメール サーバー ホストです。
ポート メール メッセージの取得に使用されるポートです。
オプション メッセージを削除 既読メッセージを削除対象としてマークする必要があるかどうかを指定します。
セキュリティで保護された接続 接続に使用する SSL/TLS 暗号化を指定します。
上限数 一覧の一番上から取得するメッセージの数です。
共通 表示名 アクティビティの表示名です。
タイムアウト (ミリ秒) エラーがスローされる前にアクティビティが実行されるまで待機する時間 (ミリ秒単位) を指定します。
出力 メッセージ MailMessage オブジェクトのコレクションとして取得されたメッセージです。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。

 

サンプルプロセス
POPでメールを取得し、最初のメッセージのFromと件名と本文をログへ出力する。

・POP3 メール メッセージを取得 のプロパティ

・取得対象のメール

・実行結果のログ

 

SMTP メール メッセージを送信 (Send SMTP Mail Message)

SMTP メール メッセージの送信は、アプリの連携 > メール > SMTP のSMTP メール メッセージを送信 を使用します。

SMTP メール メッセージを送信の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 ログオン メール メッセージの送信に使用されるメール アカウントです。
パスワード メッセージの送信に使用されるメール アカウントのパスワードです。
安全なパスワード 使用しているメール アカウントのパスワードを、セキュリティで保護された文字列で表したものです。
ホスト サーバー 使用するメール サーバー ホストです。
ポート メール メッセージの送信経路に使用されるポート。
送信者 名前 送信者の表示名です。
送信元 送信者のメール アドレスです。
オプション HTML本文 メッセージの本文が HTML 形式で記述されているかどうかを指定します。
返信先 返信に使用するメール アドレスです。
セキュリティで保護された接続 接続に使用する SSL/TLS 暗号化を指定します。
受信者 宛先 メール メッセージのメイン受信者です。
Cc メール メッセージのセカンダリ受信者です。
Bcc メール メッセージの非表示の受信者です。
メール 件名 メール メッセージの件名です。
本文 メール メッセージの本文です。
共通 表示名 アクティビティの表示名です。
タイムアウト (ミリ秒) エラーがスローされる前にアクティビティが実行されるまで待機する時間 (ミリ秒単位) を指定します。
添付ファイル ファイル メール メッセージに追加する添付ファイルです。
転送 メールメッセージ 転送するメッセージです。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。

 

サンプルプロセス
SMTPでメールを送信します。

・SMTP メール メッセージを送信 のプロパティ

・実行結果のログ

・送信したメール

 

まとめ

【再掲】メール送受信方法

分類 対象 プロセスの安定度
(外部の変化に強いか)
セキュリティ この記事でのサンプル
アプリ指定 Outlook
サービス指定 Microsoft365
Exchange
IBM Notes
プロトコル指定 IMAP
POP
SMTP
UI操作 任意のソフトウェア
任意のWebメール

 

  • おすすめは、Outlookです。Outlookに対してあらかじめメールの設定をしておけば、アクティビティへアカウントやパスワードを設定する必要がないためです。
  • プロトコル指定は、サーバー,ユーザ名(メールアドレス),パスワードをアクティビティに設定する必要があるため、セキュリティ的にはあまり推奨できません。
  • UI操作は、クリックやキーボードでメールソフトウェアやWebメールを操作するため、ソフトウェアやWebシステムの変化により、動作しなくなる可能性が高く、プロセスの安定度は低いです。

 

最後に関連記事を紹介します。

↓UiPath Studioのプロセス作成方法、アクティビティの使い方、開発時のチップスを網羅的に説明した記事です。

【UiPath】プロセス作成方法やアクティビティの使い方のまとめ記事UiPath Studioでのプロセス作成方法やアクティビティの使い方を体系的に学びたい方向けに、UiPath Studioのプロセス作成方法、アクティビティの使い方、開発時のチップスを分かりやすく説明します。...

https://penrako.com/uipathstudiosummary/(別ウインドウ)

 

↓RPAエンジニアの仕事内容、必要なスキル、将来性、IT未経験でもなれるのか、について解説した記事です。

RPAエンジニアへ転職  必要スキル、将来性、仕事内容、未経験OK?を解説 上記の疑問を持つ方向けに、RPAの開発や運用に携わる私が、RPAエンジニアの 仕事内容 必要なスキル 将来...

https://penrako.com/rpaengineer/(別ウインドウ)