Files

31 lines
1.3 KiB
SQL
Raw Permalink Normal View History

-- [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);