Gmailの添付をDriveへ保存するときは、メールのID、添付ごとの識別、保存先フォルダを一緒に管理します。同名ファイルを上書きせず、二回目の受信や再実行でも保存済みを照合できる構成にします。
Gmail Triggerで、対象メールと添付を絞る
最初は試験用メールだけを対象にします。Gmail TriggerのSearchへhas:attachmentなどの検索条件を設定し、さらに試験用ラベルや送信者で絞ります。自分の通常の受信箱を丸ごと試験へ使わないようにします。
添付を取得する場合はSimplifyをオフにし、OptionsのDownload Attachmentsを有効にする構成があります。ノードの版によって項目が異なるため、画面にある設定と公式Gmail Triggerの定義を照合してください。
OUTPUTでbinaryの項目を確認します。標準の接頭辞ならattachment_0などの名前で添付が入ります。本文のJSONと添付のbinaryは別なので、件名を添付ファイルの入力へ渡さないようにします。
Driveへ渡す添付の項目と、保存先IDを決める
- 一つの小さなPDFを添付した試験用メールで受信結果を確認する。
- Google DriveノードのUploadを選び、Input Data Field Nameへ実際のbinary項目名を指定する。
- 試験用の保存先フォルダを選び、保存するファイル名を設定する。
- 実行後にDrive側でファイルを開き、内容と保存先を確かめる。
複数添付があるメールでは、それぞれのbinary項目を処理する必要があります。最初の添付だけを保存してメール全体を完了扱いにしないでください。許す種類や最大サイズも、保存前に確認します。
ファイル名と重複判定のキーを分ける
「請求書.pdf」という表示名は複数メールで使われます。重複判定にはメールIDと添付の識別を組み合わせ、保存したDriveファイルIDを記録します。添付の順番だけを識別に使う場合は、再取得時にも順番が同じか確認が必要です。
保存記録の設計例
message_id:元のメールID
attachment_key:添付ID、または照合可能な識別
original_name:受信した名前
folder_id:保存先
file_id:Driveで作成されたID
status:未処理 / 保存済み / 要確認
名前にパス記号や長すぎる文字列が含まれる場合は、表示名を整えるルールを決めます。元の名前は記録へ残し、整えた名前だけで同一ファイルと判定しないようにします。
二添付・添付なし・再送を試す
小さなファイル一つ、二つの添付、添付なし、同じメールの再実行で結果を確かめます。添付なしは正常な分岐として終えるか、対象外として記録するかを決めます。
保存の直後に止まった場合はDriveでの作成結果を照合し、結果不明のまま新規作成しません。認証で止まる場合はGoogle OAuthの設定、重複を抑える保存設計は二重実行の防止で確認してください。