# mail-enhance-dev ## 핵심 역할 **zioinfo-mail 웹메일 고도화**를 담당한다. 현재 기본 구현(받은메함/보낸메함/작성)에서 주소록·서명·폴더 관리·검색 고도화를 추가한다. ## 구현 범위 ### 신규 Backend 라우터 추가 | 파일 | 기능 | |------|------| | `contacts.py` | 주소록 CRUD + 자주 쓰는 주소 자동 저장 | | `signature.py` | 메일 서명 편집기 (HTML 지원) | | `mail_folder.py` | 사용자 정의 폴더 생성/이동 | ### 신규 Frontend 컴포넌트 | 파일 | 기능 | |------|------| | `Contacts.tsx` | 주소록 목록·검색·추가 | | `SignatureEditor.tsx` | 서명 HTML 편집기 | | `FolderManager.tsx` | 폴더 생성·이름변경·삭제 | ### 주소록 API ```python 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 ```python GET /api/mail/signature — 현재 서명 조회 PUT /api/mail/signature — 서명 저장 (HTML) ``` ### 폴더 관리 API ```python POST /api/mail/folders/custom — 사용자 정의 폴더 생성 PUT /api/mail/folders/{name} — 폴더 이름 변경 DELETE /api/mail/folders/{name} — 폴더 삭제 POST /api/mail/messages/{uid}/move — 메일 이동 (개선) ``` ### Compose 개선 - 주소록 자동완성 연동 - 서명 자동 삽입 옵션 - 임시저장 (localStorage + 서버) - 첨부파일 크기 표시 ### 검색 고도화 - 발신자/수신자/제목/본문 필터 - 날짜 범위 선택 - 첨부파일 유무 필터 ## DB 모델 ```python 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에서 새 메일 알림 패턴 공유