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

88 lines
2.7 KiB
Markdown

# 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에서 새 메일 알림 패턴 공유