Gmailからのメール取得
この記事では、GmailGetを使ってGmailから任意のメールを取得する方法について紹介します。
Gmailの仕様上、無料のGoogleアカウントでは「GmailGet」アクションはお使いいただけません。
Google Workspaceアカウントでご利用ください。
「GmailGet」Gmailを取得する
デフォルトの設定では、取得メールは以下を含みます。
・自分が送信したメール
・他のアカウントと連携する設定をしていた場合、そのアカウント宛のメール
(参考:Googleヘルプページ-他のアカウントのメールを確認する)
自分のアカウントの受信メールに絞ってメールを取得したい場合、
「設定時のQ&A」の「1.取得するメールを絞り込みたい」をご参照ください。
設定時のQ&A
「クエリを入力(query)」でクエリ(検索条件)を設定します。
クエリはGmailの手動検索で使うものと同じです。
条件ごとのクエリの書き方は以下のページをご参照ください。
https://support.google.com/mail/answer/7190?hl=ja
作成したクエリは、自分のGmailページで検証できます。
クエリ設定例
クエリ設定は以下のようになります。
・件名に「株式会社○○」を含む未読メール subject:株式会社○○ is:unread ・差出人のアドレスに@tutorial.comを含む (チュートリアル社員からのメールである) from:@tutorial.com ・自分の送信メール(例:sample@tutorial.com)を省く from:-sample@tutorial.com
・宛先が特定のアドレス(例:sample@tutorial.com)である
(他のアカウントからの転送メールやCCメールを省く時) to:sample@tutorial.com
・差出人の名前に「太郎」もしくは「花子」が含まれる from:花子 OR from:太郎 ・2021/04/01のメール (04/01以降、かつ04/02より前に来たメール) after:2021/04/01 before:2021/04/02
時間単位のメール絞り込み設定方法
例えば直近30分以内のメールに絞って取得したい時、
「after 2021/04/01 14:30:00」といった形の指定はできません。
代わりに、UNIX時間というものを使って時間を指定します。
UNIX時間とは、「1970年1月1日午前0時(UTC)」からの経過秒数によって表される時間の単位です。
例えば日本時間で「2021/04/01 12:00:00」はUNIX時間で「1617246000」となります。
実行ごとに変動する数値になりますので、以下のような計算式で設定を行います。
設定例(30分前からのメールを取得)
①UNIX時間の計算
StoreValueアクションを使って設定します。
変数名は任意の文字列で構いません。
値は以下の通りです。
${moment().utcOffset('540').subtract(30,'minute').unix()}
(ここで使っているのはMoment.jsという時間計算のためのスクリプトです。
現在時を基準にして、任意の時間を取得できます。
こちらで説明しておりますので、ご参照ください。)
②GmailGetの設定
StoreValueアクションで保存した変数を使って、時間を設定します。
通常のクエリ設定と同様、「after:」を使って「30分前」を表現します。
GmailGetと併せて、
「GmailGetAttachments(添付ファイルをダウンロード)」アクションの設定が必要です。
こちらで設定方法を紹介しているので、ご確認ください。
ワークフローの設定例
例えば次の条件でメールを1件に絞り込んで、
そのメールの本文を確認したい場合、
以下のように設定します。
【条件】
クエリ:
・件名に「株式会社チュートリアル」を含む
・未読メール
・「資料請求」ラベルのメール
取得件数:10

以下の通り、「GmailGet」アクションを設定します。
- プロバイダーIDを設定します。
「プロバイダーIDを選ぶ」ボタンをクリックすると、作成済みのコネクションから簡単に選択できます。 - クエリを以下の通り入力します。
subject:株式会社チュートリアル is:unread label:資料請求
GmailGetアクションのアウトプットは件数に関わらずリスト形式のため、
GetItemFromListアクションでリストからメールを取り出します。
- 「リスト」にGmailGetのアウトプットを指定します
- 「インデックス」に0を入力します
GetValueWithKeyアクションを使い、オブジェクトから項目の中身を取得します。
- 「オブジェクト」にGetItemFromListのアウトプットを指定します
- 「キー」にbodyを指定します
# Gmailを取得 +gmail_get_1: action>: GmailGet query: 'subject:株式会社チュートリアル is:unread label:資料請求' provider: gsmail_xxxx limit: 10 meta: display: provider: type: chip label: 'Gmail for Google Workspace (xxxx)' icon: gsmail # リストから要素を取得 +get_item_from_list_1: action>: GetItemFromList list: +gmail_get_1 index: '0' # オブジェクトのキーの値を取得 +get_value_with_key_1: action>: GetValueWithKey object: +get_item_from_list_1 key: body
googleworkspace メール