feat: 이메일 폴더 필터링 — 테크니컬코리아/Gmail/개인 지정 가능

"테크니컬코리아 메일만" → Technicalkorea 폴더만 검색
"구글 메일" → Gmail만, "개인 메일" → INBOX만
폴더 미지정 시 전체 검색 유지

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-04-06 14:49:54 +09:00
parent 12ca8f19d9
commit 37c5616735
3 changed files with 15 additions and 5 deletions

View File

@@ -79,8 +79,8 @@ def _connect():
return conn
async def search(query: str = "", days: int = 7) -> dict:
"""전체 폴더에서 최근 메일 검색."""
async def search(query: str = "", days: int = 7, folder: str = "") -> dict:
"""메일 검색. folder 지정 시 해당 폴더만, 없으면 전체."""
try:
conn = _connect()
if not conn:
@@ -92,10 +92,11 @@ async def search(query: str = "", days: int = 7) -> dict:
else:
criteria = f"(SINCE {since})"
search_folders = [folder] if folder else FOLDERS
all_results = []
failed_folders = []
for folder in FOLDERS:
for folder in search_folders:
try:
conn.select(folder, readonly=True)
_, data = conn.search(None, criteria)

View File

@@ -83,6 +83,7 @@ async def _exec_email(operation: str, params: dict) -> dict:
return await email_tool.search(
params.get("query", ""),
params.get("days", 7),
params.get("folder", ""),
)
elif operation == "read":
return await email_tool.read(params.get("uid", ""))