office365メールとの連携
ご教示ください。
office365とKompiraEnterpriseを連携させ、メール受信をトリガーにジョブフローを動かすようなことは可能でしょうか。
-
正式なコメント
フィックスポイントの高橋です。
はい、Kompira Enterprise (v1.6.6 以降) は Office365 メールに届いたメールを IMAP4 で取得することができ、その受信をトリガーにジョブフローを動かすことは可能です。
なお、Office365 からメールを取得するには OAuth2 による認証を行ないますが、そのためには OAuth2 プロバイダの登録など事前の準備作業が必要になります。以下の記事を参考になさってみてください。
https://docbase.io/posts/2513028/sharing/4af461ba-3338-461e-adb4-611f7c482c70
必要な準備を行ないメールチャネル型オブジェクトを作成すると、Office365 からメールを取得することが出来るようになります。メール受信をトリガーにジョブフローを動かす方式としては、大きく次の二通りがあります。
(1) アクション設定によるジョブフロー実行
メールを受信するごとに実行させる例えば以下のようなジョブフロー(第一パラメータに受信したメールが渡ります)を用意します。
|recv_mail| # 第一パラメータに受信メールが渡される
print(recv_mail) # なんらかの処理を行なう(例:受信メールの表示)メールチャネルオブジェクトの設定において「アクション種別」は「ジョブフローを実行する」を選択し、「アクションターゲット」として用意したジョブフローを指定します。このように設定すると、メールチャネルは受信間隔ごとにメールサーバからメールを受信して、受信できるごとにアクションターゲットで指定したジョブフローが実行されます。(2) の方式と違って、この設定を行なった時点からメールの受信が開始されます。メール受信ごとにジョブフローが実行されるため、メール受信数に応じてプロセス数が増大することに注意が必要です。
(2) 常駐ジョブフローによるメール受信処理
ジョブフローで「イベントジョブ」というジョブを用いて、メールチャネルでのメール受信を待つことができます。メールチャネルをパラメータに指定したイベントジョブは、メールチャネルがメールを受信するまで待ち、受信したメールを結果として受け取ることができます。これを利用して、メールを受信するごとになんらかの処理を行なう、ということを繰り返すようなジョブフローを作成して実行します。(1) の方式と違って、このジョブフローを「実行」しないとメールの受信が開始されません。受信メールのなんらかの処理も同じプロセスで順次実行するので、メール受信数が増えてもプロセス数は一定です(別プロセスに処理させる、という実装も可能ではあります)。
|メールチャネル = 用意したメールチャネルオブジェクト|
{ while true | # 以下の処理を繰り返す
<メールチャネル> -> # イベントジョブでメールチャネルでのメール受信を待つ
[recv_mail = $RESULT] -> # 受信したメールを変数に代入する
print(recv_mail) # なんらかの処理を行なう(例:受信メールの表示)
}上に示した2つの例は同じようなことを行なっていますが、ジョブフロー実行の方式が異なりますので、用途に合わせて使い分けていただくとよいかと思います。サンプルではエラー処理などは一切行っていませんので、ご注意ください。
参考になさってみてください。
コメントアクション
サインインしてコメントを残してください。
コメント
3件のコメント