feat: IMAP mail sync with thread-to-contact matching (PRD §6.1)
Real IMAP connection via imapflow library: - Connects to IMAP server (IMAPFlow, TLS on port 993) - Fetches recent messages (configurable limit, default 20) - Extracts: from, fromEmail, subject, date, snippet (200 chars) - Thread-to-contact matching (PRD §6.1): 1. Match sender email against persons table 2. If no person match, extract domain and match against company.website 3. Returns matchedCompany + matchedPerson for each email - Audit-logged (action: crm.mailsync:imap) - Zod validated (host, port, user, password, folder, limit) - 502 on IMAP connection failure with detail - 400 on validation failure Tested: invalid creds → 502 'IMAP connection failed', missing host → 400
This commit is contained in:
1 parent
7acc0c5451
commit
e45b68bb8b
1089 files changed
+260614
No files matched your search
+45
@@ -0,0 +1,45 @@
|
||||
产品规划
|
||||
产品迭代
|
||||
PRD
|
||||
需求评审
|
||||
用户访谈
|
||||
用户画像
|
||||
用户增长
|
||||
留存
|
||||
转化率
|
||||
A/B 测试
|
||||
漏斗分析
|
||||
数据驱动
|
||||
跨部门协作
|
||||
推动落地
|
||||
0-1
|
||||
1-N
|
||||
商业化
|
||||
PMF
|
||||
增长黑客
|
||||
AARRR
|
||||
私域
|
||||
GMV
|
||||
ROI
|
||||
CAC
|
||||
LTV
|
||||
SOP
|
||||
SaaS
|
||||
B 端
|
||||
C 端
|
||||
内容运营
|
||||
社群运营
|
||||
活动运营
|
||||
PMP
|
||||
Scrum
|
||||
看板
|
||||
Sprint
|
||||
Jira
|
||||
Confluence
|
||||
Notion
|
||||
飞书
|
||||
SQL
|
||||
Tableau
|
||||
Figma
|
||||
Axure
|
||||
墨刀
|
||||
Reference in new issue
Block a user