影刀RPA 邮件自动分类归档:Outlook收件箱自动整理

发布时间:2026/7/25 9:08:12
影刀RPA 邮件自动分类归档:Outlook收件箱自动整理 title: “影刀RPA 邮件自动分类归档Outlook收件箱自动整理”date: 2026-07-01author: 林焱影刀RPA 邮件自动分类归档Outlook收件箱自动整理收件箱几百封邮件乱成一锅粥每天花大量时间找邮件。影刀可以自动扫描收件箱按发件人、主题关键词、日期把邮件分类移入对应文件夹收件箱始终保持整洁。什么情况用什么适合自动归档的场景固定供应商/客户的往来邮件自动进对应文件夹自动报表邮件系统定时发的日报月报自动归档含特定关键词的邮件如发票“合同”自动分类拼多多店群自动化报活动上架垃圾营销邮件自动标记或删除不适合的场景邮件内容需要人工判断重要性再归档分类规则复杂且频繁变化怎么做方法1通过win32com操作Outlook本地安装Outlook【影刀操作】新建流程「Outlook邮件自动归档」添加【Python】指令importwin32com.clientimportrefromdatetimeimportdatetime,timedelta# 连接Outlookoutlookwin32com.client.Dispatch(Outlook.Application)mapioutlook.GetNamespace(MAPI)# 获取收件箱inboxmapi.GetDefaultFolder(6)# 6 olFolderInbox# 检查并创建目标文件夹defget_or_create_folder(parent_folder,folder_name):forfolderinparent_folder.Folders:iffolder.Namefolder_name:returnfolderreturnparent_folder.Folders.Add(folder_name)# 获取或创建归档文件夹archive_rootget_or_create_folder(inbox,自动归档)folder_reportsget_or_create_folder(archive_root,系统报表)folder_contractsget_or_create_folder(archive_root,合同发票)folder_supplier_aget_or_create_folder(archive_root,供应商A往来)# 定义分类规则rules[{name:系统自动报表,conditions:{sender_domain:[noreplycompany.com,reporterp.com],subject_keywords:[日报,周报,系统报告,Daily Report]},target_folder:folder_reports},{name:合同发票,conditions:{subject_keywords:[合同,发票,采购订单,Invoice,Contract]},target_folder:folder_contracts},{name:供应商A,conditions:{sender_domain:[supplier-a.com]},target_folder:folder_supplier_a}]# 扫描收件箱只处理最近7天的邮件seven_days_agodatetime.now()-timedelta(days7)moved_count0itemsinbox.Items items.Sort([ReceivedTime],True)# 按时间降序# 收集要移动的邮件不在循环中直接操作避免集合变动引发错误emails_to_move[]foriteminitems:try:ifitem.Class!43:# 43 olMailcontinuereceived_timeitem.ReceivedTimeifreceived_time.replace(tzinfoNone)seven_days_ago:break# 已按时间倒序早于7天前的不处理senderitem.SenderEmailAddress.lower()subjectitem.Subjectorforruleinrules:conditionsrule[conditions]matchedFalse# 检查发件人域名ifsender_domaininconditions:ifany(domaininsenderfordomaininconditions[sender_domain]):matchedTrue# 检查主题关键词ifnotmatchedandsubject_keywordsinconditions:ifany(kwinsubjectforkwinconditions[subject_keywords]):matchedTrueifmatched:emails_to_move.append((item,rule[target_folder],rule[name]))breakexceptExceptionase:print(f处理邮件时出错{e})# 批量移动foremail,target_folder,rule_nameinemails_to_move:try:email.Move(target_folder)moved_count1print(f已归档规则{rule_name}{email.Subject[:40]})exceptExceptionase:print(f移动失败{e})print(f\n归档完成共移动{moved_count}封邮件)yda.set_variable(archived_count,moved_count)方法2通过邮件IMAP协议操作适合非Outlook邮箱【影刀操作】添加【Python】指令importimaplibimportemailfromemail.headerimportdecode_headerimportre# 连接QQ邮箱/网易邮箱需要开启IMAP获取授权码IMAP_SERVERimap.qq.comEMAIL_ADDRyourqq.comAUTH_CODEyour_imap_auth_code# QQ邮箱的授权码不是登录密码mailimaplib.IMAP4_SSL(IMAP_SERVER,993)mail.login(EMAIL_ADDR,AUTH_CODE)# 选择收件箱mail.select(INBOX)# 搜索最近7天的未读邮件_,msg_idsmail.search(None,SINCE,24-Jun-2024,UNSEEN)classified_emails{合同发票:[],系统报表:[],其他:[]}formsg_idinmsg_ids[0].split():_,datamail.fetch(msg_id,(RFC822))rawdata[0][1]msgemail.message_from_bytes(raw)# 解码主题subject_raw,encodingdecode_header(msg[Subject])[0]ifisinstance(subject_raw,bytes):subjectsubject_raw.decode(encodingorutf-8,errorsreplace)else:subjectsubject_raw sendermsg.get(From,)# 分类contract_keywords[合同,发票,采购订单]report_keywords[日报,周报,月报,Report]ifany(kinsubjectforkincontract_keywords):classified_emails[合同发票].append({id:msg_id,subject:subject,from:sender})elifany(kinsubjectforkinreport_keywords):classified_emails[系统报表].append({id:msg_id,subject:subject,from:sender})else:classified_emails[其他].append({id:msg_id,subject:subject,from:sender})mail.logout()forcategory,emailsinclassified_emails.items():print(f{category}{len(emails)}封)importjson yda.set_variable(classified_emails,json.dumps(classified_emails,ensure_asciiFalse))有什么坑坑1Outlook未打开时脚本报错win32com需要Outlook进程在运行如果Outlook没开GetObject(Outlook.Application)会报错。TEMU店群矩阵自动化运营核价报活动解决方法用Dispatch代替GetObject它会自动启动Outlookoutlook win32com.client.Dispatch(Outlook.Application)坑2邮件在循环中移动引发迭代错误在for循环里直接调用item.Move()Outlook集合发生变化后续迭代出错。解决方法先把要移动的邮件收集到列表循环结束后再批量移动代码里已体现。坑3邮件主题乱码IMAP接收的邮件主题可能是Base64或QP编码直接读出来是乱码。解决方法用email.header.decode_header()正确解码。坑4归档规则冲突一封邮件同时符合多个规则结果只被移到第一个匹配的文件夹可能不是期望的。解决方法规则按优先级排序高优先级的规则放在前面匹配到一条就break。总结邮件自动归档能让收件箱始终保持整洁。win32com操作Outlook最灵活适合企业内部Outlook用户IMAP方式适合QQ邮箱、网易邮箱等个人邮箱。关键是设计好分类规则从发件人和主题两个维度来识别覆盖率能达到80%以上。

相关新闻

最新新闻

日新闻

周新闻

月新闻