Gmail受信トレイの新着メールを対象のラベルへ移動させるフロー 【ASTERIA WrapとGmail連携 IMAPデータモデル】その②

今回はGmailGetコンポーネントとGmailSQLCallコンポーネントを利用してメール取得、メールラベル移動についてご紹介します。

ASTERIA WarpGmail連携】前回紹介

  事前準備とIMAPデータモデル_Gmailコネクション作成

②【ASTERIA WarpGmail連携】←今回紹介

  GmailGetコンポーネント、GmailSQLCallコンポーネントでメール取得、メール移動 

*********************************

・フロー全体の流れ

GmailGetで受信トレイ【INBOX】からメールを取得し、件名(Subject)により対象のラベルへ移動する

フロー全体図

・フロー詳細説明

GmailGetコンポーネントでIMAP.INBOXからメール一覧をループで取得

 件名は特定できないためCONTAINSを使用して対象文字が含んでいるメールを取得

 例:SELECT Id, Subject FROM IMAP.INBOX WHERE CONTAINS(Subject, 'プログラミング') OR CONTAINS(Subject, '') ORDER BY Date DESC;

GmailGet設定内容

・1つ目のMapperではラベル定義とストリームデータをマッピング(GmailGetコンポーネント直下のMapper)

 下図のように条件付きレイヤと条件なしレイヤを設定

 このMapperではSubject(件名)にIT課に関する文字が含んでいるかを確認しています。

 SubjectIT課に関する文字が含む場合、DestinationIT課を定義

 IT課に関する文字が含まない場合は、Destinationに値を定義していない

 条件付きレイヤ定義内容:

 ( $record.Subject ~= "プログラミング" ) || ( $record.Subject ~= "IT" ) || ( $record.Subject ~= "エンジニアリング" ) || ( $record.Subject ~= "情報" )

1つ目のMapper設定内容

・1つ目のBranchStartコンポーネントでDestination(ラベル)の値が条件に一致するかを確認

 BranchStartの条件式プロパティで「$record.Destination!="IT"」を設定

 例:直前のMapperDestination=IT課になった場合は、条件式の判定結果はfalseになるため、下方向へ進みます。

1つ目BranchStart設定内容

Mapper2コンポーネントではラベルを移動するためにGmailSQLCallコンポーネントのSQLパラメータに値を設定(1つ目BranchStartの下方向のMapper

Mapper2設定内容

GmailSQLCallコンポーネントでGmailIMAPデータモデルのMoveEmailsストアドプロシージャでメールを移動

 GmailSQLCallSQL文に「{call MoveEmails(?Mailbox?,?Id?,?Destination?)}」を設定

 例:{call MoveEmails(?デフォルト値?,?10?,?IT?)}

 MailboxDestinationのデフォルト値はInboxになります。

GmailSQLCall設定内容

Mapperコンポーネント(ビジネス課に関するMapperへ参考)

 条件付きレイヤと条件なしレイヤを設定

 このMapperではSubject(件名)にビジネス課に関する文字が含んでいるかを確認しています。

 Subjectにビジネス課に関する文字が含む場合、Destinationにビジネス課を定義

 ビジネス課に関する文字が含まない場合は、Destinationに値を定義していない

 条件付きレイヤの定義内容:

( $record.Subject ~= "ビジネス" ) || ( $record.Subject ~= "経理" ) || ( $record.Subject ~= "文系" )

ビジネス課に関するMapper設定内容

・上記Mapperの直下にあるBranchStartコンポーネントでDestination(ラベル)の値が条件に一致するかを確認

 BranchStartの条件式プロパティで「$record.Destination!="ビジネス課"」を設定

 例:直前のMapperDestination=ビジネス課になった場合は、条件式の判定結果はfalseになるため、下方向へ進みます。

BranchStartコンポーネントの直下Mapperコンポーネントでラベルを移動するためにGmailSQLCallコンポーネントのSQLパラメータに値を設定

GmailSQLCallコンポーネントでGmailIMAPデータモデルのMoveEmailsストアドプロシージャでメールを移動する

 GmailSQLCallSQL文に「{call MoveEmails(?Mailbox?,?Id?,?Destination?)}」を設定

 例:{call MoveEmails(?Mailbox?,?9?,?ビジネス課?)}

・建築課、総務へメール移動についても上記の内容と同じくGmailGetで取得したSubject(件名)を取得し、Mapperの条件付きレイヤで建築課対象の文字、総務対象の文字が含んでいるかを確認し、Destinationにそれぞれ対象の移動先(値)を定義し、BranchStartDestinationにどんな値が入っているかを確認して、移動先を分岐する

上記の内容により、IT課、ビジネス課、建築課、総務へメールが移動できるようになります。

・Gmailでメール移動を確認する

 新着メール8件あり、移動前のIT課、ビジネス課、建築課、総務に入っているメール件数は下図通りなる

受信メール一覧画面

フロー実行後の移動

IT課へのメール移動内容
ビジネス課、建築課、総務へのメール移動内容