메일 서비스(사이트 대표·독립)·메일함·사용량·보안·전환·보존과 AriMail 도입 수정(KST 월 경계, 발신 키 오류, 도메인별 보장량, 100% 제한, 발송 큐·속도, 운영 상태, SSO) (§15~§18·§0.4)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
zzabisagent-lab
2026-10-26 11:47:45 +00:00
co-authored by Claude Fable 5.1
parent a014e3cd05
commit a1cde81332
26 changed files with 1610 additions and 37 deletions
@@ -0,0 +1,30 @@
-- [Ariweb Suite 변경] 1.0.11+ariweb: 발송 대기열과 악용 의심 표(Dev-Order §17.2).
-- outbound_queue: 발송 모듈(Resend/Haraka/SMTP 중계)에 넘기기 직전부터 끝날 때까지의 기록. 프로세스가 중간에 죽으면 'interrupted' 로 남아 관리자가 다시 보낼 수 있습니다(메일을 잃지 않음).
-- state: sending(발송 중) → sent(끝) | failed(발송 모듈 오류, 재시도 가능) | interrupted(재시작으로 끊김)
-- abuse_flags: 제출 속도 초과(초당 10건 이상) 등 운영자가 확인할 신호. 메일 내용은 넣지 않습니다.
CREATE TABLE outbound_queue (
id TEXT PRIMARY KEY,
domain TEXT NOT NULL,
mailbox TEXT NOT NULL DEFAULT '',
send_key TEXT,
payload_json TEXT NOT NULL,
state TEXT NOT NULL DEFAULT 'sending' CHECK(state IN ('sending','sent','failed','interrupted')),
attempts INTEGER NOT NULL DEFAULT 0,
provider_id TEXT,
error TEXT,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
sent_at TEXT
);
CREATE INDEX outbound_queue_state ON outbound_queue(state, created_at);
CREATE TABLE abuse_flags (
id TEXT PRIMARY KEY,
kind TEXT NOT NULL,
subject TEXT NOT NULL,
detail TEXT,
rate REAL,
created_at TEXT NOT NULL,
reviewed_at TEXT,
reviewed_by TEXT
);
CREATE INDEX abuse_flags_open ON abuse_flags(reviewed_at, created_at);