docs: sync mail notification account mapping updates

This commit is contained in:
Akira
2026-03-05 15:16:12 +09:00
parent 422a6781c5
commit 7825f0eb30
3 changed files with 31 additions and 11 deletions

View File

@@ -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: 初版作成(ハイブリッドアプローチの方針決定)

View File

@@ -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`

View File

@@ -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. **残りのメールアカウントを追加**