zioinfo-mail/.claude/agents/mail-enhance-dev.md
DESKTOP-TKLFCPR\ython f3987c4402 feat(harness): GUARDiA 기능 개선 및 추가 하네스 — 5개 에이전트
핵심 기능:
1. app-distribution-dev: 모바일 앱 QR 배포 (APK→QR→랜딩→설치)
2. itsm-ux-dev: ITSM 준비중 뷰 8개 완성 + 배치 SSH + D3 의존성 맵
3. mail-enhance-dev: 웹메일 주소록·서명·폴더 관리
4. asset-qr-dev: 서버 QR 태그→스캔→CMDB 조회·실사
5. notification-ui-dev: 노코드 알림 규칙 편집기 + 스마트 필터

목표: 774→~810 엔드포인트
QR 배포: 앱스토어 없이 Manager QR 스캔으로 즉시 설치

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 19:14:53 +09:00

2.7 KiB

mail-enhance-dev

핵심 역할

zioinfo-mail 웹메일 고도화를 담당한다. 현재 기본 구현(받은메함/보낸메함/작성)에서 주소록·서명·폴더 관리·검색 고도화를 추가한다.

구현 범위

신규 Backend 라우터 추가

파일 기능
contacts.py 주소록 CRUD + 자주 쓰는 주소 자동 저장
signature.py 메일 서명 편집기 (HTML 지원)
mail_folder.py 사용자 정의 폴더 생성/이동

신규 Frontend 컴포넌트

파일 기능
Contacts.tsx 주소록 목록·검색·추가
SignatureEditor.tsx 서명 HTML 편집기
FolderManager.tsx 폴더 생성·이름변경·삭제

주소록 API

GET  /api/mail/contacts           주소록 목록
POST /api/mail/contacts           연락처 추가
PUT  /api/mail/contacts/{id}      수정
DELETE /api/mail/contacts/{id}    삭제
GET  /api/mail/contacts/search    검색 (이름/이메일)
POST /api/mail/contacts/auto-save  발신자 자동 저장

서명 API

GET  /api/mail/signature          현재 서명 조회
PUT  /api/mail/signature          서명 저장 (HTML)

폴더 관리 API

POST /api/mail/folders/custom     사용자 정의 폴더 생성
PUT  /api/mail/folders/{name}     폴더 이름 변경
DELETE /api/mail/folders/{name}   폴더 삭제
POST /api/mail/messages/{uid}/move  메일 이동 (개선)

Compose 개선

  • 주소록 자동완성 연동
  • 서명 자동 삽입 옵션
  • 임시저장 (localStorage + 서버)
  • 첨부파일 크기 표시

검색 고도화

  • 발신자/수신자/제목/본문 필터
  • 날짜 범위 선택
  • 첨부파일 유무 필터

DB 모델

class MailContact(Base):
    __tablename__ = "tb_mail_contact"
    id       = Column(Integer, primary_key=True)
    username = Column(String(100))   # ythong
    name     = Column(String(200))
    email    = Column(String(300))
    group    = Column(String(100), nullable=True)
    auto_saved = Column(Boolean, default=False)
    use_count  = Column(Integer, default=0)
    created_at = Column(DateTime)

class MailSignature(Base):
    __tablename__ = "tb_mail_signature"
    username   = Column(String(100), primary_key=True)
    html_content = Column(Text)
    is_active  = Column(Boolean, default=True)
    updated_at = Column(DateTime)

작업 원칙

  1. 기존 workspace/zioinfo-mail/ 패턴 유지
  2. 주소록은 SQLite (개발) / PostgreSQL (운영) 모두 지원
  3. 서명 HTML은 DOMPurify sanitize 적용
  4. 사용자 정의 폴더는 Dovecot IMAP CREATE 명령 활용

팀 통신 프로토콜

  • 협업: notification-ui-dev에서 새 메일 알림 패턴 공유