WinActorシナリオ作成の基礎 メールを受信し添付ファイルを保存する

2019年6月にWinActorのメジャーバージョンアップが行われ、バージョン5からバージョン6になりました。色々と機能追加がありましたが、本稿ではその中でも目玉の1つと思われるメール管理機能を利用したシナリオを紹介します。

メール管理機能とは

バージョン5まででは、メール送信に関しては付属のライブラリでOutlook等を用い簡単にメール送信ができました。しかしながら、受信したメールの添付ファイルを保存したり、件名の内容から判断して何らかの処理を行ったりという自動化は、エミュレーション等を駆使して行うことはできましたが、精度や利便性の点から難易度が高かったと思われます。

今回のバージョンアップで、WinActor自体にメールの受信機能を持ち、メーラーを介さずに本文や添付ファイルの取得ができるようになりました。
※メールの送信機能までは実装されておらず、メーラーが必要です。

本稿では、メール受信関連のライブラリを用い、
「受信したメールの添付ファイルを特定のフォルダ保存する」
というサンプルシナリオを作成します。

メール受信の設定方法

メール受信を用いたシナリを作成する上で、最初にメール受信の設定を行う必要があります。設定方法は3通りあります。

1.メインメニューの「メール管理」ウィンドウから設定する
2.ライブラリ「メール受信」から設定する
3.インポートする

今回は1の方法で設定します。

WinActorのメイン画面から、メール管理画ウィンドウを表示させます。

ウィンドウ上部にある左端のアイコン「メール受信パラメータ設定」を押すと、
メール受信設定の画面が開きます。

「接続設定」「保存条件」「取得条件設定」の3つのタブがあり、すべて設定が必要です。
「接続設定」のタブでは、メーラーに設定する場合のように、POPサーバの設定を行います。使用するメールアカウントの内容を設定してください。

「保存条件」では、受信したメールを保存しておくフォルダと、添付ファイル保存の有無、許可する拡張子を設定します。

「取得条件設定」では、メールサーバーから受信するメールの条件を設定します。設定できる条件は件名、宛先メールアドレス、差出メールアドレスの3つです。
何も設定しない場合は全メール受信というわけではないので、何らかの条件を設定する必要があります。

設定が完了したら、メール管理ウィンドウでメール受信のアイコンを押して、受信できるか試します。

無事に受信ができました。


シナリオを作成する上では、特殊な件名で自分のメールアドレスにメールを複数送ってテストケースとするのが良いでしょう。
注意事項として、記事執筆時点のバージョン(6.0.1)ではhtmlメールを受信すると本文が添付ファイル扱いになってしまうことがあるようです。

保存条件で設定したフォルダを見ると、”inbox”フォルダの中にメールごとにフォル分けされ項目ごとにテキストファイルが作られています。添付ファイルがある場合、”attachedFiles”というフォルダに添付ファイルが格納されます。

以上で、メールの受信設定が完了しました。

シナリオの流れ

メールが受信できることを確認したので、シナリオの作成に入ります。
シナリオの流れは以下のとおりです。

・メールを受信する
・処理対象のメールを選択
・添付ファイルの有無により分岐
あり→ファイル移動 なし→次の処理に移動
・メールを処理済みにする
・すべてのメールが処理済みになるまで繰り返す

メールを受信する

前項ではメール管理のウィンドウから手動でメールを受信しましたが、
実際のシナリオでは自動実行としたいので「メール受信」のライブラリで、受信を行います。

シナリオの最初に「メール受信」のライブラリを設置します。

「メール受信」のプロパティを設定します。
本シナリオでは、一度にメールをすべて受信してから処理する前提とします。

なお、実際のシナリオ作りにおいては、何度もテストしながら進めていくことになりますが、一度受信してしまうと、再受信はしないのでうまくテストができません。
メール保存フォルダを空にすると再受信しますので、そうすると繰り返し試すことができます。

添付ファイルの有無を取得し、分岐する

受信が完了したら、メールに添付ファイルがあるかどうかを確認します。
まず、受信したメールの中でどのメールに関して確認処理するか設定するために「メール選択」のライブラリを設置します。

プロパティの設定をします。

続いて、選択したメールの添付ファイル有無を取得するため、ライブラリ「メール情報取得」を設置します。

「メール情報取得」では、メール管理ウィンドウの項目列の内容をそれぞれ変数として格納することができます。今回は、添付ファイル数を取得することで、添付ファイルの有無を判断します。

「メール情報取得」の下に「分岐」を設置します。

分岐グループのプロパティを開き、条件式を設定します。

画像では添付ファイルが0の場合、Trueに進むという設定になります。
したがって、添付ファイルがある場合の処理をFalseに設定していきます。

添付ファイルを移動する

Falseのグループにライブラリ「添付ファイル名を取得」を設置します。

本シナリオでは添付ファイルは1つのみの想定なので、
プロパティでは添付ファイル番号=1としています。


2つ以上ある場合は、分岐を多分岐として、0、1、2以上…と分けるシナリオが考えられます。

なお、なぜ添付ファイルの件数を取得してから、分岐してファイル名を取得する必要があるかと言うと、添付ファイルがないメールから「添付ファイル名を取得」しようとすると、エラーで停止してしまうため、このようなフローにしています。

続いて、ライブラリ「ファイル移動」を設置します。

プロパティで、取得した添付ファイル名(フルパス・変数)を特定のフォルダに移動するように設定します。

ライブラリ「ファイル移動」は、移動先のフォルダに既に同名のファイルが存在するとエラーになりますので、そのような場合には、変数を用い移動時にファイル名を変更する必要があります。

メールの状態を変更し、繰り返す

分岐グループ終了後に、ライブラリ「メール状態変更」を設置します。

プロパティで、メール状態変更種別を「処理済み」に設定します。

これにより、最初にメールを選択してから、状態を変更するまでの一連の自動化(1ループ)が完成しました。

最後に、繰り返しを設置します。画像のように、先頭の「メール受信」の下に繰り返しグループを設置し、以下のノード・ライブラリはすべて繰り返しグループの中に入れます。

繰り返しのプロパティは「回数=メール数」(受信時に取得した変数)としています。
受信したメールの数だけ、繰り返す設定です。

この状態でシナリオを実行すると、終了後のメール管理ウィンドウは下記のようになり、処理済みになっていることが確認できます。

また、添付ファイルの移動先を開き、ファイルが移動されているか確認します。

なお、メール管理ウィンドウ上で、添付ファイルを移動したにもかかわらず添付が1となっていますが、これはライブラリ「メールフォルダ同期」を実行するか、再度受信すると更新されます。

以上で、シナリオは完成です。

今回はメール機能を利用したシナリオ作成を紹介しました。
メールの受信が可能になったことにより、シナリオの幅が一層広くなりますので、業務効率化に役立ててください。

業務の自動化を実現する「WinActor」

WinActorは純国産RPAソリューションです。Excel、ブラウザ、業務システム等、Windows端末から操作可能なアプリケーションの操作をシナリオとして学習し、PC操作を自動化するソフトウェア型のロボットです。

WinActorで業務の自動化を実現しませんか?