mail: distinguish xserver mailboxes in account labels

This commit is contained in:
Akira
2026-03-05 14:17:25 +09:00
parent 0e809ebb99
commit 422a6781c5
5 changed files with 62 additions and 9 deletions

View File

@@ -0,0 +1,31 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('mail', '0004_rename_infoseek_to_gmail_service'),
]
operations = [
migrations.AlterField(
model_name='mailemail',
name='account',
field=models.CharField(
choices=[
('gmail', 'Gmail'),
('gmail_service', 'Gmail (サービス用)'),
('hotmail', 'Hotmail'),
('xserver1', 'Xserver (akira@keinafarm.com)'),
('xserver2', 'Xserver (service@keinafarm.com)'),
('xserver3', 'Xserver (midori@keinafarm.com)'),
('xserver4', 'Xserver (kouseiren@keinafarm.com)'),
('xserver5', 'Xserver (post@keinafarm.com)'),
('xserver6', 'Xserver (sales@keinafarm.com)'),
('xserver', 'Xserver (legacy)'),
],
max_length=20,
verbose_name='アカウント',
),
),
]

View File

@@ -42,10 +42,16 @@ class MailSender(models.Model):
ACCOUNT_CHOICES = [
('xserver', 'Xserver'),
('gmail', 'Gmail'),
('hotmail', 'Hotmail'),
('gmail_service', 'Gmail (サービス用)'),
('hotmail', 'Hotmail'),
('xserver1', 'Xserver (akira@keinafarm.com)'),
('xserver2', 'Xserver (service@keinafarm.com)'),
('xserver3', 'Xserver (midori@keinafarm.com)'),
('xserver4', 'Xserver (kouseiren@keinafarm.com)'),
('xserver5', 'Xserver (post@keinafarm.com)'),
('xserver6', 'Xserver (sales@keinafarm.com)'),
('xserver', 'Xserver (legacy)'),
]
FEEDBACK_CHOICES = [
@@ -105,3 +111,4 @@ class MailNotificationToken(models.Model):
def __str__(self):
return str(self.token)

View File

@@ -1,6 +1,6 @@
# マスタードキュメント - メール通知関連編
> **最終更新**: 2026-02-25
> **最終更新**: 2026-03-05
> **対象バージョン**: Phase 1 完了時点(本番稼働中)
> **目的**: このドキュメントだけでメール通知機能の全容を把握できること
@@ -92,7 +92,7 @@ Windmill スケジュール `0 */10 * * * *` で自動実行。サーバー上
| フィールド | 型 | 説明 |
|---|---|---|
| `id` | BigAutoField | PK |
| `account` | CharField(20) | `gmail` / `gmail_service` / `xserver` / `hotmail` |
| `account` | CharField(20) | `gmail` / `gmail_service` / `hotmail` / `xserver1``xserver6`(旧データは `xserver` |
| `message_id` | CharField(500, unique) | メールの Message-ID ヘッダー(重複防止に使用)|
| `sender_email` | EmailField | 送信者メールアドレス |
| `sender_domain` | CharField(255) | 送信者ドメイン |
@@ -597,3 +597,4 @@ curl -s -H "Authorization: Bearer $TOKEN" \
本番 Windmill でのパス: `f/mail/mail_filter`
スケジュール: `f/mail/mail_filter_schedule`

View File

@@ -129,7 +129,7 @@
| フィールド | 型 | 説明 |
|---|---|---|
| id | AutoField | |
| account | CharField | 'xserver' / 'gmail' / 'hotmail' |
| account | CharField | 'gmail' / 'hotmail' / 'xserver1'〜'xserver6'(旧データは 'xserver' |
| message_id | CharField (unique) | メールのMessage-ID重複防止 |
| sender_email | EmailField | |
| sender_domain | CharField | |
@@ -263,3 +263,4 @@
6. **LLM判定ロジック**Claude API呼び出し、集計文脈付き
7. **LINE通知**フィードバックURL付き
8. **残りのメールアカウントを追加**

View File

@@ -29,9 +29,15 @@ const FEEDBACK_LABELS: Record<string, string> = {
const ACCOUNT_LABELS: Record<string, string> = {
gmail: 'Gmail',
hotmail: 'Hotmail',
xserver: 'Xserver',
gmail_service: 'Gmail (サービス用)',
hotmail: 'Hotmail',
xserver1: 'Xserver (akira@keinafarm.com)',
xserver2: 'Xserver (service@keinafarm.com)',
xserver3: 'Xserver (midori@keinafarm.com)',
xserver4: 'Xserver (kouseiren@keinafarm.com)',
xserver5: 'Xserver (post@keinafarm.com)',
xserver6: 'Xserver (sales@keinafarm.com)',
xserver: 'Xserver (旧データ)',
};
const FEEDBACK_OPTIONS = [
@@ -144,9 +150,15 @@ export default function MailHistoryPage() {
>
<option value=""></option>
<option value="gmail">Gmail</option>
<option value="hotmail">Hotmail</option>
<option value="xserver">Xserver</option>
<option value="gmail_service">Gmail ()</option>
<option value="hotmail">Hotmail</option>
<option value="xserver1">Xserver (akira@keinafarm.com)</option>
<option value="xserver2">Xserver (service@keinafarm.com)</option>
<option value="xserver3">Xserver (midori@keinafarm.com)</option>
<option value="xserver4">Xserver (kouseiren@keinafarm.com)</option>
<option value="xserver5">Xserver (post@keinafarm.com)</option>
<option value="xserver6">Xserver (sales@keinafarm.com)</option>
<option value="xserver">Xserver ()</option>
</select>
<select
value={filterVerdict}
@@ -311,3 +323,4 @@ export default function MailHistoryPage() {
</div>
);
}