docs: sync mail notification account mapping updates
This commit is contained in:
11
CLAUDE.md
11
CLAUDE.md
@@ -1,6 +1,6 @@
|
||||
# Keina System - Claude 向けガイド
|
||||
|
||||
> **最終更新**: 2026-02-28
|
||||
> **最終更新**: 2026-03-05
|
||||
> **現在のフェーズ**: Phase 1 (MVP) - 気象データ基盤を追加
|
||||
|
||||
## 📌 このファイルの目的
|
||||
@@ -150,7 +150,7 @@ MailSender (送信者ルール)
|
||||
└── ConstraintCheck: email/domain どちらか一方のみ
|
||||
|
||||
MailEmail (受信メール記録)
|
||||
├── account (xserver/gmail/hotmail等)
|
||||
├── account (gmail / gmail_service / hotmail / xserver1〜xserver6、旧データxserver)
|
||||
├── message_id (unique)
|
||||
├── sender_email, sender_domain
|
||||
├── subject, body_preview
|
||||
@@ -303,8 +303,9 @@ DistributionGroupField (グループ圃場割り当て)
|
||||
- フィードバックページ: `/mail/feedback/[token]`(LINEからタップ一発、認証不要)
|
||||
- ルール管理ページ: `/mail/rules/`
|
||||
- 処理履歴ページ: `/mail/history/`
|
||||
- 対応アカウント: Gmail × 2、Xserver × 6(本番稼働中)
|
||||
- 対応アカウント: Gmail × 2、Xserver × 6(本番稼働中、`account` は `xserver1`〜`xserver6` で識別)
|
||||
- Windmill フロー: `f/mail/mail_filter`(本番: windmill.keinafarm.net にデプロイ済み、10分間隔スケジュール)
|
||||
- To: ヘッダー宛先補正を実装(Gmail先行取り込み時も @keinafarm.com 宛は xserver1〜xserver6 として記録/通知)
|
||||
- マスタードキュメント: `document/11_マスタードキュメント_メール通知関連編.md`
|
||||
8. **パスワード変更機能**:
|
||||
- Backend: `POST /api/auth/change-password/`(JWT認証、`ChangePasswordView` in `keinasystem/urls.py`)
|
||||
@@ -500,6 +501,8 @@ docker-compose exec backend python manage.py migrate
|
||||
|
||||
## 📝 更新履歴
|
||||
|
||||
- 2026-03-05: メール通知機能を更新。MailEmail.account を xserver1〜xserver6 で識別可能に変更。Windmill mail_filter に To ヘッダー宛先補正を追加し、Gmail先行取り込みでも Xserver 宛先ラベルが崩れないよう修正。マスタードキュメント/仕様書を同期。
|
||||
|
||||
- 2026-02-28: Cursor連携を廃止。Claude Code 単独運用に変更。`document/20_Cursor_Claude連携ガイド.md` を削除
|
||||
- 2026-03-02: 分配計画機能を実装。`apps/fertilizer` に DistributionPlan/DistributionGroup/DistributionGroupField 追加、API `/api/fertilizer/distribution/`、PDF出力(A4横・グループ★行+圃場サブ行)、フロントエンド `/distribution/`。マスタードキュメント `document/14_マスタードキュメント_分配計画編.md` 追加
|
||||
- 2026-03-01: 施肥計画機能を実装・本番稼働。`apps/fertilizer`(Fertilizer, FertilizationPlan, FertilizationEntry, 自動計算3方式, PDF出力, PROTECT migration 0002)、フロントエンド `/fertilizer/`(一覧・編集・肥料マスタ)。施肥機能全体で alert/confirm 廃止・インラインバナーに統一。マスタードキュメント `document/13_マスタードキュメント_施肥計画編.md` 追加
|
||||
@@ -510,3 +513,5 @@ docker-compose exec backend python manage.py migrate
|
||||
- 2026-02-18: E-2(対応付け可視化・紐づけ管理)仕様追加。画面設計書・差異レポート・次タスク一覧を更新。完了済みタスク(A-8, D-1〜D-4, E-1)を既知の課題から除外
|
||||
- 2026-02-17: ドキュメント一斉更新(差異レポートA〜E反映、CSV→PDF統一、M:N関係、中山間モデル17列化、インライン編集方式、Navbar追加、既知の課題・次タスク一覧追加)
|
||||
- 2026-02-16: 初版作成(ハイブリッドアプローチの方針決定)
|
||||
|
||||
|
||||
|
||||
@@ -47,16 +47,18 @@
|
||||
|
||||
```
|
||||
1. IMAP 接続 → 前回処理済み UID 以降の新着メールを取得
|
||||
2. 送信者ルール確認(GET /api/mail/sender-rule/)
|
||||
2. 宛先補正(To ヘッダー)
|
||||
└── @keinafarm.com 宛先は xserver1〜xserver6 に正規化(Gmail先行取り込み時の誤表示防止)
|
||||
3. 送信者ルール確認(GET /api/mail/sender-rule/)
|
||||
├── never_notify → スキップ(記録しない)
|
||||
├── always_notify → LLMスキップ、即 LINE 通知
|
||||
└── ルールなし → 3へ
|
||||
3. 過去フィードバック集計取得(GET /api/mail/sender-context/)
|
||||
4. Gemini API で重要度判定(LLM)
|
||||
5. KeinaSystem に記録(POST /api/mail/emails/)
|
||||
└── ルールなし → 4へ
|
||||
4. 過去フィードバック集計取得(GET /api/mail/sender-context/)
|
||||
5. Gemini API で重要度判定(LLM)
|
||||
6. KeinaSystem に記録(POST /api/mail/emails/)
|
||||
├── not_important → 記録のみ、通知なし
|
||||
└── important → フィードバックURLを発行、LINE 通知
|
||||
6. 処理済み最終 UID を Windmill Variable に保存
|
||||
7. 処理済み最終 UID を Windmill Variable に保存
|
||||
```
|
||||
|
||||
### 10分ごとの定期実行
|
||||
@@ -370,6 +372,12 @@ Hotmail は定義済みだがコメントアウト(未有効化)。
|
||||
|
||||
回答: `1`(重要)/ `2`(重要でない)の1文字。`1` で始まる場合 `important`。
|
||||
|
||||
|
||||
### 4.7 宛先補正ロジック
|
||||
|
||||
- 対象: Gmail 側で先に取得された転送メール
|
||||
- 方法: `To` ヘッダーの宛先アドレスを `recipient_map` で `xserver1`〜`xserver6` に変換
|
||||
- 目的: message_id 重複時に Gmail で先着しても、実際の受信メールボックス(Xserver側)を通知文・履歴で保持する
|
||||
### 4.6 LINE 通知文フォーマット
|
||||
|
||||
```
|
||||
@@ -514,7 +522,7 @@ UUID v4 のランダムトークンのみで認証。有効期限なし。LINE
|
||||
|
||||
### 重複メール処理
|
||||
|
||||
同じメールが複数アカウントで受信される場合(転送設定等)、`message_id` の unique 制約で2件目以降を自動スキップ。最初に処理したアカウントの `account_code` でDBに記録される。
|
||||
同じメールが複数アカウントで受信される場合(転送設定等)、`message_id` の unique 制約で2件目以降を自動スキップ。先着レコードを採用するが、Gmail先行時でも `To` ヘッダー宛先補正により `xserver1`〜`xserver6` を優先して記録する。
|
||||
|
||||
---
|
||||
|
||||
@@ -598,3 +606,5 @@ curl -s -H "Authorization: Bearer $TOKEN" \
|
||||
本番 Windmill でのパス: `f/mail/mail_filter`
|
||||
スケジュール: `f/mail/mail_filter_schedule`
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -66,6 +66,9 @@
|
||||
```
|
||||
新着メール受信
|
||||
↓
|
||||
0. 宛先補正(To ヘッダー)
|
||||
- @keinafarm.com 宛先は xserver1〜xserver6 に正規化(Gmail先行取り込み時の誤ラベル防止)
|
||||
↓
|
||||
1. mail_senders に一致するアドレスルールがあるか?
|
||||
→ never_notify: スキップ(LLM呼ばない、記録もしない)
|
||||
↓
|
||||
@@ -129,7 +132,7 @@
|
||||
| フィールド | 型 | 説明 |
|
||||
|---|---|---|
|
||||
| id | AutoField | |
|
||||
| account | CharField | 'gmail' / 'hotmail' / 'xserver1'〜'xserver6'(旧データは 'xserver') |
|
||||
| account | CharField | 'gmail' / 'gmail_service' / 'hotmail' / 'xserver1'〜'xserver6'(旧データは 'xserver') |
|
||||
| message_id | CharField (unique) | メールのMessage-ID(重複防止) |
|
||||
| sender_email | EmailField | |
|
||||
| sender_domain | CharField | |
|
||||
@@ -264,3 +267,5 @@
|
||||
7. **LINE通知**(フィードバックURL付き)
|
||||
8. **残りのメールアカウントを追加**
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user