メール監視トリガーで起動するフローは、指定したメールサーバーで指定したアカウントのメールボックスを監視し、メールを受信するとフローが起動されます。
メール監視トリガー設定画面
フローデザイナーの「実行設定」ダイアログボックスまたはトリガー管理の画面上部にあるメールのアイコンをクリックします。
メールを処理するフローの設定
実行設定では、以下の3つのフローを指定できます。
- 本文処理フロー
メール本文または全体のMIMEを処理するフローを選択します。 - 添付ファイル処理フロー
メールの添付ファイルを処理するフローを選択します。 - エラー処理フロー
エラー発生時に実行するフローを選択します。
メール監視トリガーの動作概要
メール1件ごとに内部的に自動生成されたメール監視用のフローが起動され、このフローのサブフローとして実行設定で指定した「本文処理フロー」と「添付ファイル処理フロー」を実行するようになっています。本文処理フロー、添付ファイル処理フローのどちらかでエラーが発生してアボートした場合に「エラー処理フロー」が実行されます。
※「本文処理フロー」、「添付ファイル処理」フローで、フロープロパティまたはコンポーネントプロパティの「エラー処理」プロパティでエラー時のフローを設定し、そのフローが正常終了する場合は実行設定で指定した「エラー処理フロー」は起動されません。
メール1件ごとにフローが起動されるようになっているため、1回のポーリングで複数メール受信した場合にいずれかのメール処理でエラーが発生してもすべてのメールが処理されます。実行設定の「メールの削除」項目で指定した削除対象にならなかったメールは、ユーザーホームディレクトリ内のフォルダにファイルとして保存されて最初の受信以降は受信しません。
メール監視トリガーの具体的な動作
メール監視トリガーでは、ユーザーのホームフォルダーに以下のフォルダが作成されます。
mailsフォルダ :_mails/POP3/[メールコネクション名]/mails errorsフォルダ:_mails/POP3/[メールコネクション名]/errors
次のような順序で処理が行われます。
- POPサーバーにあるメールを受信して、mailsフォルダ配下にMIMEをファイルとして保存する。
メールが既にerrorsフォルダに保存されている場合は何もしない。 - mailsフォルダのファイルに対して実行設定で指定されたフローを順次実行する。
- 削除条件を満たさなかった(実行設定に指定されていない)ファイルはerrorsフォルダに移動する。
- mailsフォルダのファイルを全部処理するまで2、3の処理を繰り返す。
- 4の終了時点でmailsフォルダにあるファイルは削除対象のメールとなる。
- 再度POPサーバーに接続する。
- mailsフォルダにあるメールをPOPサーバー上削除し、同時にmailsフォルダにあるファイルも削除する。
- mailsフォルダにあるファイルがPOPサーバー上に存在しない場合はファイルを削除する。
- 次回実行時にmailsフォルダにファイルが残っている場合は1よりも先に7、8の手順を実行する。
メール監視トリガーにおいてメールが削除される条件
実行設定の「メールの削除」項目の指定により、以下の条件で削除されます。
- 「正常終了時に削除」の場合
「本文処理フロー」、「添付ファイル処理フロー」の両方が正常終了した場合にのみ削除されます。
※「エラー処理フロー」が実行された場合、「エラー処理フロー」が正常終了した場合に削除されます。
(Exceptionコンポーネントで異常終了した場合は削除されません。) - 「戻り値が「」の場合削除」の場合
「本文処理フロー」、「添付ファイル処理フロー」の両方が同じ値を返した場合のみ削除されます。
※「エラー処理フロー」が実行されて終了した場合、その戻り値は無視されるためメールは削除されません。
メール監視トリガーの設定方法については、フローサービスマニュアル「フローデザイナー」-「トリガー管理」-「実行設定」-「メール監視」を参照してください。