生活や仕事に役立つライフハック、お得な情報を発信しています。⚠️記事内にPRを含みます

n8nで受信メールの内容を解析!IMAPノードで添付ファイル保存やテキスト抽出

毎日の業務で受信する大量のメール。

その一つ一つに目を通し、添付ファイルを整理し、必要な情報を転記する作業に、多くの時間を費やしてはいませんか。

もし、これらの定型的なメール処理を自動化できたら、あなたの生産性は劇的に向上するでしょう。

この記事では、iPaaS(Integration Platform as a Service)ツールである「n8n」のIMAPノードを活用し、受信メールの解析から添付ファイルの保存、テキスト抽出までを自動化する具体的な方法を、ステップバイステップで詳しく解説します。

手作業によるメール処理から解放され、より創造的な業務に集中するための第一歩を、この記事から始めましょう。

n8nとIMAPノードの基本を理解しよう

ワークフローの構築を始める前に、まずは中核となる「n8n」と「IMAPノード」の基本を理解しておくことが重要です。このセクションでは、それぞれの概要と、メール自動化における役割について解説します。(この記事は2025年12月時点の情報に基づいています。)

n8nとは?ノーコードで繋がる業務自動化の世界

n8nは、プログラミングの知識がなくても、様々なアプリケーションやサービスを連携させ、業務プロセスを自動化できるツールです。API連携をブロック(n8nでは「ノード」と呼びます)を繋ぎ合わせるような直感的なインターフェースで実現できるため、「ノーコードツール」や「iPaaS」の一種として注目されています。

例えば、「Gmailで特定のメールを受信したら」「その内容をSlackに通知し」「添付ファイルをGoogle Driveに保存する」といった一連の流れを、一つのワークフローとして自動化できます。n8nの全体像や基本的な使い方、導入のメリットについてさらに詳しく知りたい方は、n8n完全ガイド記事で体系的に解説していますので、ぜひそちらもご覧ください。

メール自動化の鍵「IMAP」とは?

IMAP(Internet Message Access Protocol)は、メールサーバー上のメールにアクセスするためのプロトコル(通信規約)の一つです。よく比較されるPOP3がメールを端末にダウンロードして管理するのに対し、IMAPはサーバー上でメールを直接管理するのが大きな特徴です。

  • IMAP: サーバー上でメールを管理。複数のデバイスから同じ状態(既読・未読など)でメールを閲覧できる。
  • POP3: 端末にメールをダウンロード。ダウンロード後はサーバーから削除される設定が一般的。

n8nでメールを自動処理する場合、サーバー上でメールを操作できるIMAPが非常に適しています。n8nのIMAPノードは、このプロトコルを利用してメールサーバーに接続し、「メールの受信」「検索」「既読処理」「フォルダ移動」といった操作を自動化のワークフローに組み込むことを可能にします。

IMAPノードの初期設定と認証(Credential)

n8nでIMAPノードを使用するには、最初に「Credential(認証情報)」を設定する必要があります。これにより、n8nがあなたのメールアカウントへ安全にアクセスできるようになります。

多くのメールサービス(GmailやOutlookなど)では、セキュリティ強化のため、通常のログインパスワードではなく「アプリパスワード」の使用が推奨または必須となっています。アプリパスワードは、各サービスのアカウント設定画面から生成できます。事前に生成しておくと、設定がスムーズに進みます。

主な設定項目:

  • Host: メールサーバーのアドレス(例: imap.gmail.com)
  • Port: 993 (SSL/TLS利用時)
  • User: あなたのメールアドレス
  • Password: 生成したアプリパスワード
  • SSL/TLS: 有効にすることを強く推奨します

これらの情報を正しく入力しCredentialを作成すれば、IMAPノードを使ってメールサーバーに接続する準備は完了です。

実践①:受信メールの添付ファイルを自動で保存するワークフロー

ここからは、より実践的なワークフローの構築に入ります。最初の例として、「特定の件名を持つメールを受信したら、その添付ファイルを自動的にサーバー上の指定フォルダに保存する」ワークフローを作成してみましょう。請求書やレポートなど、定期的に送られてくる添付ファイルを自動で整理する際に非常に役立ちます。

ワークフローの全体像

この自動化は、主に以下のノードを組み合わせて実現します。

  1. IMAP Email (Trigger): 新着メールを定期的にチェックするトリガーノード。
  2. IF: 受信したメールが特定の条件(例: 件名に「請求書」を含む)に合致するかを判定。
  3. (Optional) Set: ファイル名を動的に設定する場合に使用。
  4. Write Binary File: 添付ファイル(バイナリデータ)を実際にファイルとして書き出す。

この流れにより、「条件に合うメールだけを抽出し、その添付ファイルを保存する」という処理が完成します。

各ノードのステップバイステップ設定

1. IMAP Email (Trigger) ノードの設定

まず、ワークフローの起点となるトリガーを設定します。ここでは、15分ごとに新着メールをチェックする設定を例にします。

  • Credential: 事前に作成したIMAPの認証情報を選択します。
  • Folder: チェックしたいメールフォルダを指定します。(例: INBOX)
  • Fetch an interval: ワークフローの実行間隔を設定します。(例: 15 minutes)

2. IF ノードで条件分岐

次に、すべてのメールを処理するのではなく、目的のメールだけを絞り込むためのIFノードを設置します。

  • Value 1: 条件判定の対象となる値を設定します。Expressionsを使い、{{ $json.subject }} と入力することで、トリガーで受信したメールの件名を取得できます。
  • Operation: 判定方法を選択します。ここでは「contains (含まれる)」を選びます。
  • Value 2: 判定する文字列を入力します。(例: 請求書)

この設定により、件名に「請求書」という文字列が含まれるメールのみが、IFノードの「true」出力に進むようになります。

3. Write Binary File ノードでファイルを保存

IFノードの「true」の出力とWrite Binary Fileノードを接続し、添付ファイルの保存設定を行います。ここが最も重要なポイントです。

  • File Name: 保存するファイル名を設定します。/path/to/your/folder/{{ $binary.data.fileName }}のように入力します。{{ $binary.data.fileName }}は、n8nが自動で認識した元のファイル名に置き換わります。これにより、元のファイル名を維持したまま保存できます。日付などを加えて/path/to/{{ $now.toFormat('yyyy-MM-dd') }}-{{ $binary.data.fileName }}のようにユニークなファイル名にすることも可能です。
  • Input Data: 「Binary」を選択します。これは、入力データがファイルそのものであることを示します。

【独自の視点】
n8nでファイルを扱う際、多くの初心者が混乱するのが「データ形式」です。n8nの内部では、ファイルは「バイナリデータ」として扱われます。IMAPノードが添付ファイルを取得した際、そのデータはバイナリプロパティに格納されています。Write Binary Fileノードは、このバイナリデータを入力として受け取り、指定されたパスにファイルとして書き出す役割を担います。もし「JSON」データのまま繋いでしまうと、ファイルの中身ではなく、ファイルに関する情報(ファイル名など)がテキストとして保存されてしまうため、注意が必要です。

これでワークフローは完成です。有効化すれば、n8nが自動でメールを監視し、条件に合う添付ファイルを指定の場所に保存し続けてくれます。

実践②:メール本文から特定情報を抽出し、スプレッドシートに記録する

次に応用編として、メール本文から特定の情報を抽出し、Google Sheetsなどのスプレッドシートに自動で記録するワークフローを構築します。Webサイトからの問い合わせフォームの通知メールなど、定型的なフォーマットで送られてくるメールの情報をデータベース化するのに最適です。

ワークフローの全体像

この自動化は、主に以下のノードで構成されます。

  1. IMAP Email (Trigger): 新着メールをチェック。
  2. HTML Extract: メール本文(HTML形式)から必要な情報を抽出。
  3. Set: 抽出したデータを整形し、後続のノードで使いやすくする。
  4. Google Sheets: 整形したデータをスプレッドシートの新しい行に追加。

このワークフローにより、メールで受信した情報を手動でコピー&ペーストする手間が完全になくなります。

各ノードのステップバイステップ設定

1. IMAP Email (Trigger) ノード

設定は先程の例と同様です。問い合わせ通知が届くフォルダを指定するなど、目的に合わせて設定してください。

2. HTML Extract ノードで情報を抽出

メール本文はHTML形式で送られてくることが多いため、HTML Extractノードが役立ちます。CSSセレクタを使って、HTMLタグの中から目的のテキストをピンポイントで抽出します。

  • Source Data: 「From Field」を選択し、Valueに {{ $json.html }} と入力して、メールのHTML本文を抽出対象とします。
  • Extraction Values:
    • Key: 抽出したデータの名前(例: customerName)。
    • CSS Selector: 抽出したい要素のCSSセレクタ(例: #name, .contact-field)。ブラウザの開発者ツールを使うと簡単に見つけられます。
    • Return Value: 「Text」を選択し、タグ内部のテキストを取得します。

同様に、「問い合わせ内容」や「連絡先」など、必要な項目を複数設定することで、一度にすべての情報を抽出できます。

【独自の視点】
もしメール本文がHTMLではなくプレーンテキストで、かつフォーマットが一定の場合は、RegEx(正規表現)ノードを使うとより柔軟な抽出が可能です。例えば、「氏名:(ここに名前)」という形式であれば、氏名:(.*) のような正規表現で名前部分だけを抜き出せます。HTMLの構造が変わりやすい場合や、テキストメールを扱う場合は、RegExノードの活用も検討しましょう。

3. Set ノードでデータを整形

HTML Extractノードで抽出したデータは、後続のノードで使いやすいようにSetノードで一度整形しておくと便利です。

  • Name: 新しく作成する値の名前(例: name)。
  • Value: HTML Extractノードで抽出した値をExpressionsで指定します。(例: {{ $json.customerName }}
  • 「Add Value」で、スプレッドシートのカラムに対応する値をすべて設定します。(例: inquiry, emailなど)

4. Google Sheets ノードでスプレッドシートに追記

最後に、整形したデータをGoogle Sheetsに書き込みます。

  • Credential: Googleアカウントの認証情報を設定します。
  • Resource: 「Row」を選択。
  • Operation: 「Append」を選択して、末尾に行を追加します。
  • Sheet ID: 対象スプレッドシートのIDを指定します。
  • Columns:
    • Key: スプレッドシートのカラム名(例: A, B, C)。
    • Value: Setノードで設定した値をExpressionsで指定します。(例: {{ $json.name }}, {{ $json.inquiry }}

これで、問い合わせメールを受信するたびに、その内容が自動でスプレッドシートに記録されていく仕組みが完成しました。顧客管理やタスク管理の一次情報として、リアルタイムに活用できます。

まとめ:IMAPノードでメール処理の自動化を始めよう

この記事では、n8nのIMAPノードを使い、受信メールの添付ファイルを保存する方法と、本文から情報を抽出してスプレッドシートに記録する方法を解説しました。IMAPノードは非常に多機能で、今回紹介した以外にも、メールの自動返信、フォルダ分け、迷惑メールの自動処理など、アイデア次第で様々な業務を自動化できます。

日々のルーティンワークであったメール処理をn8nに任せることで、あなたはヒューマンエラーのリスクから解放され、より付加価値の高い仕事に時間とエネルギーを注ぐことができるようになります。これは、ビジネスの生産性を飛躍的に向上させる大きな一歩です。

n8nは、小規模なワークフローであれば無料で始められるプランも用意されています。まずは身近なメール処理の自動化から試してみてはいかがでしょうか。以下のリンクからn8nに登録し、あなた自身の業務自動化ワークフローを今すぐ構築してみましょう。

>> n8nでメール業務の自動化を始める

n8nのさらに詳しい機能や、他のサービスとの連携方法については、n8n完全ガイド記事で詳しく解説しています。自動化の可能性をさらに広げたい方は、ぜひこちらも合わせてお読みください。