電話による営業、セールスはお断りしております。誠に申し訳ございませんが、問い合わせフォームよりお願い致します。 お問い合わせはコチラ

MCのメールトリガーを試してみたよ

こんにちは。
自称)BizRobo!エンジニアのもりりんです。

今回は、BizRobo! Ver11.になってオマケ機能から本機能に昇格した「MCのメールトリガーを試してみました」です。
なんとか、実務ロボットまでは落とし込むことができましたが、みなさん利用されていないのか情報がかなり少ないです。
むしろ、公式マニュアルとナレッジ、公式YouTube(1本だけ)以外はないに等しいです。

また検証するにあたり、いくつか気になった(おかしい)動作を見つけたためRPAT社へ動作仕様の問い合わせをしています。
そちらは情報が入り次第随時更新していきます。

しかし、メールトリガーを利用するだけであれば、「超」簡単なので気になっている方は続きをどうぞ。

目次

 メールトリガーとは 

 各種メールアカウントのメールフォルダを監視し、受信メールをBizRobo!で逐次処理できる機能です。
 この機能は、10.4から存在するオプション機能であり、DAのように常駐型の外部アプリとして提供されていました。

 このモジュールは11.1でMCに取り込まれ、メールトリガーとして公開されています。

メールトリガーでは、モジュール時代に問題となっていたGMailが利用できない問題が解消されています。

ただし、OAuth認証ではなくパスワード認証のため、Googleアカウントに2段階認証を設定しているユーザはパスワードをそのまま利用できないため、下記の記事を参考にアプリパスワードを発行してください。
なお、企業アカウントの場合は管理者側で一括制限されている可能性もありますので、事前に自社で変更可能かご確認ください。

BizRobo!が公開している参考サイトは以下です。

Kofaxマニュアル:電子メールトリガー 
BizRobo! ナレッジ:【v11.1】新機能解説動画 電子メールトリガー

 メールトリガーの利用法 

利用方法は簡単です。

  1.  メール内容を受信できるロボットをアップロードする
  2. MCの「設定」- 「電子メールアカウント」にメールアカウントを登録する
  3. MCの「リポジトリ」 – 「電子メールトリガー」にメールアカウント、ロボット、監視対象のメールフォルダを登録する
  4. メールボックスにメールを格納し、メールトリガーを実行させる
STEP

メール内容を受信できるロボットをアップロードする 

ロボットには、LongText型の変数をもつタイプファイルを1つ用意し、ロボットに取り込む際に「パラメータとして使用」にチェックを入れるだけです。

サンプルロボットは、以下です。

  • メールトリガーがパラメータ指定された変数にメール内容を格納しているため、扱いやすいようにEML拡張子で保存します。
  • 保存したEMLファイルをロードし、好きなように加工します。
STEP

 MCの「設定」- 「電子メールアカウント」にメールアカウントを登録する 

メールトリガを利用する前に、メールアカウントの登録が必要です。
利用するアカウント情報を確認しておきましょう。

STEP

 MCの「リポジトリ」 – 「電子メールトリガー」にメールアカウント、ロボット、監視対象のメールフォルダを登録する

先程登録したメールアカウント、ロボット、監視対象の電子メールフォルダを登録します。

メールボックスは、メールアカウントから自動抽出され選択肢として表示されます。

STEP

メールボックスにメールを格納し、メールトリガーを実行させる

動作させたいメールを登録したメールフォルダに格納します。
メールアプリのフィルター等を利用し、自動振り分けされるように登録しておきましょう。

メールトリガーでは、指定したメールフォルダの下に3つのサブフォルダが自動作成されます。
 どの状態になるのかは、以下となります。

  1.  Processing:メールトリガーが実行中
  2. Error:ロボットでエラーが発生し、正常終了しなかった
  3. Finished:正常終了 

後は、放置するだけで自動処理されます。

メールトリガーの注意点 

 開発初期はデータがない 

メールトリガーは、MCで機能しないため事前にメールを抽出しEMLファイルに出力するロボットだけ先にアップロードしておきましょう。
ロボットが出力したEMLファイルを開発環境に取り込み後、受信用のLongText型変数に直接貼り付けデバッグしていきましょう。

 メールのエンコーディングによっては、日本語が文字化けする  

私が試したところ、BizRobo!で正常に認識できるEMLファイル内の本文に指定されているエンコードは、「quoted-printable」「base64」「UTF-8」でした。

「7-bit」「8-bit」指定もありますが、この2つは文字化けします。

上記2つの文字化けは、9/15にテクニカルサポートに調査依頼をしていますが、10/4時点では調査中との回答です。

 2022-10-14追記 

テクニカルサポートからの回答

結論

7/8bitエンコードのメールはBizRobo!の電子メール抽出ステップを利用すると文字化けする不具合がある

そのため、EMLファイルに出力するのではなく、受信したLongText型のメールデータから正規表現で本文を抽出してくださいとのことです。

RPAT社からの回答メールに付属していた参考例を抜粋

この場合の懸念点は、複数メールを1つのメールトリガーで捌こうとすると、本文のエンコードで分岐が発生するため、チェック処理を入れる必要があることです。
おそらくチェック処理も本文から正規表現で抽出する方法になるかと思いますが、メール構造はメール毎に異なるため統一性はないので注意が必要です。
うろ覚えですが、「Content-Transfer-Encoding:」から始まる行を抽出するようにすれば、大丈夫層そうな気はします。

エンコードが「quoted-printable」の場合は、必ずファイル出力する 

EMLファイルを出力する方法で紹介しているため特に問題にはなりませんが、ファイル出力せず変数に格納されたメールデータをそのまま利用する場合には注意が必要です。

quoted-printableでは、行の折返しに「=」の文字が付与される仕様となっており、その他にも「=3D」「=09」「=20」等のエンコードが発生します。
また、URLエンコードの「%」も「=」に変換されてしまい、区別がつかなくなります。

そのため、EMLファイルに出力した方が、BizRobo!がメールデータを変換してくれる分楽に操作できます。

最後に

今回は、11.1で追加されたMCの新機能のメールトリガーの紹介でした。
メールトリガー自体の機能は、10系から存在しますが制限があったり、外部アプリとして運用しないといけない点が不便でした。
うまくエンコードされない問題もあり、メールトリガーで全てのメールを捌けるとは言えませんが、定期的に来るメールやサービスの問い合わせや監視メールを処理するような業務では活用できるかと思います。

また、9/29に告知された11.3にて、DSロボットでもメール取得ができるようになっています。(今回も名称変更があるので、今後はどう呼ぼう…)
メールトリガーとは異なり、メールフォルダの全メールを抽出してしまうようなので、処理済みかどうか等のチェック処理を入れないといけませんが、わざわざメールクライアントにアクセスしなくても利用できるのはいいですね。
ただ残念なのは、OAuth認証に対応していないため、冒頭にも記載したように2段階認証を設定しているメールアカウントで使えないユーザも一定数いることですね。
Googleであれば、諦めてアプリパスワードを発行しましょう。

今回も最後までお読みいただき、ありがとうございました。 

RPAは一般的な業務システムとは異なり、PoCを実施し、導入・運用開始で終わりではありません。
導入がスタートラインです。

業務効率化、人員最適化等の目標に応じた計画策定や人員配置、業務ロボットの開発・運用といったPDCAサイクルが必要です。
弊社では、貴社の課題に適した自動化プランのご提案や開発者育成研修も実施し、貴社と並走したサポートをご提供いたします。

お気軽にお問い合わせください。
BizRobo!や弊社サポートについて詳しくはこちら

目次