핵심 기능: 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>
2.7 KiB
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)
작업 원칙
- 기존
workspace/zioinfo-mail/패턴 유지 - 주소록은 SQLite (개발) / PostgreSQL (운영) 모두 지원
- 서명 HTML은 DOMPurify sanitize 적용
- 사용자 정의 폴더는 Dovecot IMAP CREATE 명령 활용
팀 통신 프로토콜
- 협업: notification-ui-dev에서 새 메일 알림 패턴 공유