Initial commit: IMAP to LINE notification workflow

This commit is contained in:
akira
2026-02-11 12:32:32 +09:00
commit 37f2185d2e
2 changed files with 202 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
# IMAPからLINEへの通知ワークフロー構築手順書
このドキュメントでは、n8nを使用して「メールIMAPを受信し、LINE Messaging APIで通知する」ワークフローを構築する手順を説明します。
この手順は、Docker環境で動作するn8nを前提としています。
## 1. 前提条件
* **n8n環境**: n8n v1.0以上が動作していること。
* **メールサーバー情報**: IMAP接続が可能なメールサービスのホスト名、ポート、ユーザー名、パスワードGoogleの場合はアプリパスワード
* **LINE Messaging API**: LINE Developersコンソールでチャネルが作成され、アクセストークンロングターム推奨とユーザーIDが取得済みであること。
## 2. 準備: コミュニティノードのインストール
標準のIMAPードでは大量のメールを処理しきれない場合があるため、拡張機能であるコミュニティードを使用します。
1. n8nの画面左下、または設定メニューから **[Settings]** > **[Community nodes]** を開きます。
2. **[Install a community node]** をクリックします。
3. 以下のパッケージ名を入力し、インストールします。
* Package Name: `n8n-nodes-imap-enhanced`
* (承認が必要な場合はチェックを入れて進めてください)
## 3. ワークフローのインポート
添付のJSONファイル `n8n_imap_to_line_workflow.json` を使用すると、設定済みのワークフローを一括で読み込めます。
1. n8nのワークフロー一覧画面Workflowsを開きます。
2. 右上のメニューから **[Import from File]** を選択し、JSONファイルをアップロードします。
3. または、新規ワークフローを作成し、画面右上のメニューから **[Import from File]** を選択します。
4. インポート後、画面を一度リロードF5することを推奨しますコミュニティードの表示を反映させるため
## 4. ノードの設定詳細
インポートされたワークフローには、主に3つのードが含まれています。それぞれの設定を確認・修正してください。
### A. Schedule Trigger
定期的にメールチェックを行うトリガーです。
* **Interval**: デフォルトは3分間隔になっています。必要に応じて変更してください。
### B. IMAP Enhanced (Community Node)
メールを受信するノードです。
* **Credential**: [Create New] からメールサーバー情報を入力して保存してください。
* Googleの場合: Userはメールアドレス、Passwordはアプリパスワードです。
* **Resource**: `Message` を選択。
* ※もし空欄になっている場合は、一度別の項目を選んでから `Message` を選び直してください。
* **Operation**: `Get Many` を選択。
* **Mailbox**: `INBOX`
* **Format**: `Resolved`
* **Options重要**:
* **Limit**: `10` 程度推奨1回に処理する件数
* **Search**: `UNSEEN SINCE 10-Feb-2026` のように設定します。
* `UNSEEN`: 未読メールのみを対象。
* `SINCE dd-Mon-yyyy`: 指定日以降のメールのみ対象(大量の過去メール読み込みを防ぐため必須)。
* **Download Attachments**: `false`動作を軽くするためOFF推奨
### C. LINE Messaging API (HTTP Request)
LINEに通知を送るードです。
* **Method**: `POST`
* **URL**: `https://api.line.me/v2/bot/message/push`
* **Authentication**: `Header Auth` を選択。
* **Credential**: [Create New] から以下を設定します。
* **Name**: `Authorization` (※スペルミス注意。スペース等は入れないこと)
* **Value**: `Bearer {YOUR_ACCESS_TOKEN}` (先頭に `Bearer ` と半角スペースを入れる)
* **Body**: JSON形式で送信内容を定義しています。
* `to`: あなたのLINEユーザーID (`U`から始まる文字列) に書き換えてください。
## 5. 動作確認
1. 画面下部の **[Execute Workflow]** をクリックします。
2. 自分宛てにテストメールを送るなどして、未読メールがある状態で通知が届くか確認してください。
3. 問題なければ、画面右上の **[Active]** スイッチをONにして保存してください。
以上
## 参考: CLIコマンドラインでのインポート方法
今回の作業では、ブラウザを使わずにサーバー内部のコマンドだけでインポートを行いました。
大量のワークフローを管理する場合や、自動化する場合に便利な方法です。
### 1. サーバーへのファイル転送
作成したJSONファイルを、サーバー上の任意の場所例: `/home/akira/workflow.json`)に配置します。
ローカルPCから送る場合は `scp` コマンドなどを使用)
### 2. Dockerコンテナへのコピー
n8nが動作しているDockerコンテナの中に、そのファイルをコピーします。
```bash
docker cp /home/akira/workflow.json n8n-n8n-1:/home/node/workflow.json
```
* `n8n-n8n-1`: n8nのコンテナ名環境によって異なります
### 3. インポートコマンドの実行
コンテナ内部の `n8n` コマンドを呼び出してインポートします。
```bash
docker exec -u node -i n8n-n8n-1 n8n import:workflow --input=/home/node/workflow.json
```
* `import:workflow`: ワークフローをインポートするコマンド
* `--input`: 読み込むファイルのパス
これで、IDが一致するワークフローがあれば上書きされ、なければ新規作成されます。
以上

View File

@@ -0,0 +1,96 @@
{
"name": "IMAP to LINE Notification (Messaging API) Enhanced",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutes": 3
}
]
}
},
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1,
"position": [
0,
0
]
},
{
"parameters": {
"resource": "message",
"operation": "getAll",
"mailbox": "INBOX",
"format": "resolved",
"downloadAttachments": false,
"options": {
"limit": 10,
"search": "UNSEEN SINCE 10-Feb-2026"
}
},
"name": "IMAP Enhanced",
"type": "n8n-nodes-imap-enhanced.imapEnhanced",
"typeVersion": 1,
"position": [
200,
0
]
},
{
"parameters": {
"method": "POST",
"url": "https://api.line.me/v2/bot/message/push",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ {\n \"to\": \"YOUR_USER_ID_HERE\",\n \"messages\": [\n {\n \"type\": \"text\",\n \"text\": \"📩 新着メール\\n\\nFrom: \" + ($json.from?.text || \"Unknown\") + \"\\nSubject: \" + ($json.subject || \"No Subject\")\n }\n ]\n} }}",
"options": {}
},
"name": "LINE Messaging API",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [
400,
0
]
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "IMAP Enhanced",
"type": "main",
"index": 0
}
]
]
},
"IMAP Enhanced": {
"main": [
[
{
"node": "LINE Messaging API",
"type": "main",
"index": 0
}
]
]
}
}
}