如何用UiPath读取Gmail收件箱邮件提取数据存入Word/Excel
UiPath实现Gmail邮件读取、字段提取及文件存储全操作步骤
一、前期环境与权限配置
- 提前安装好UiPath Studio,在管理包面板确认
UiPath.Mail.Activities、UiPath.Excel.Activities、UiPath.Word.Activities三个官方活动包已完成安装 - 登录目标Gmail账户,进入设置-转发和POP/IMAP选项,勾选「启用IMAP」;再前往Google账户安全中心,开启两步验证后生成专用应用密码,后续UiPath连接时使用该密码可避免第三方登录拦截
二、Gmail账户关联与目标邮件读取
- 新建空白UiPath流程,在活动面板搜索
Get IMAP Mail Messages活动拖入设计画布 - 打开活动配置面板,按以下参数填写连接信息:
- Server:填
imap.gmail.com,端口填993,勾选SSL连接选项 - Email:输入目标Gmail邮箱地址,Password栏填入之前生成的Gmail专用应用密码
- MailFolder:选择
Inbox(收件箱),可按需设置Top属性限定读取最新邮件数量,避免全量拉取耗时过长 - 输出属性栏设置变量名
List_Mails,类型为List<System.Net.Mail.MailMessage>,用于存储拉取到的所有邮件对象
- Server:填
- 拖入
For Each活动,遍历对象设置为List_Mails,循环内当前项变量命名为Current_Mail,后续所有字段提取操作都在该循环内完成
三、邮件正文结构化字段提取
待提取目标邮件正文格式参考:
Hello!
First name:John
Last name:Doe
Email:sample@gmail.com
Message:对应文本内容
- 在For Each循环内拖入
Assign活动,把当前邮件纯文本正文赋值给变量Str_Body,表达式写Current_Mail.Body;如果邮件是HTML格式,可写Regex.Replace(Current_Mail.Body, "<.*?>", "")先去除HTML标签拿到纯文本 - 针对每个字段用正则匹配提取,拖入多个
Assign活动写正则表达式取值,对应字段匹配规则如下:- First name提取:表达式写
System.Text.RegularExpressions.Regex.Match(Str_Body, "(?<=First name:).*?(?=\r?\n)").Value.Trim(),赋值给变量Str_FirstName - Last name提取:表达式写
System.Text.RegularExpressions.Regex.Match(Str_Body, "(?<=Last name:).*?(?=\r?\n)").Value.Trim(),赋值给变量Str_LastName - Email提取:表达式写
System.Text.RegularExpressions.Regex.Match(Str_Body, "(?<=Email:).*?(?=\r?\n)").Value.Trim(),赋值给变量Str_Email - Message提取:表达式写
System.Text.RegularExpressions.Regex.Match(Str_Body, "(?<=Message:)[\s\S]*").Value.Trim(),赋值给变量Str_Message(该字段可能包含多行内容,用[\s\S]匹配所有字符直到正文末尾)
- First name提取:表达式写
- 按需可选操作:如果需要把Message字段的英文内容翻译成中文,可拖入官方
Translate活动,设置源语言为英文、目标语言为中文,输入为Str_Message,输出赋值给新变量替换原文本即可
四、提取结果存储到Excel/Word文件
存储到Excel操作
- 循环外拖入
Build Data Table活动,创建4个列名分别为First name、Last name、Email、Message的数据表,变量命名为DT_Result - 回到For Each循环内,所有字段提取完成后,拖入
Add Data Row活动,输入数组为{Str_FirstName, Str_LastName, Str_Email, Str_Message},目标数据表选择DT_Result - 所有邮件循环遍历完成后,在循环外拖入
Write Range活动,设置存储路径比如C:\UiPath_Output\邮件提取结果.xlsx,工作表名填Sheet1,起始单元格填A1,输入数据表选择DT_Result,勾选「包含表头」选项即可完成Excel写入
存储到Word操作
- 循环外可直接用
Create Word Document活动在指定路径比如C:\UiPath_Output\邮件提取结果.docx生成空白文档,文档对象变量命名为Word_Doc - 回到For Each循环内,字段提取完成后拖入
Append Text活动(Word活动包下),目标文档选择Word_Doc,待写入文本按固定格式拼接即可,示例格式:************************* 名:{Str_FirstName} 姓:{Str_LastName} 邮箱:{Str_Email} 留言内容:{Str_Message} ************************* - 所有邮件遍历完成后,拖入
Save Word Document活动保存文档,再用Close Word Document活动关闭文档对象释放占用
五、流程调试与异常兜底
- 拖入
Try Catch活动把整个流程逻辑包裹,Catch块中添加Log Message活动,记录报错信息到本地日志文件,避免流程运行中意外中断无排查依据 - 先拿1-2封测试邮件运行流程,检查字段提取是否存在错漏、文件写入是否正常,确认正则规则匹配无误后再设置全量邮件读取规则
- 可按需在读取邮件环节加过滤条件,比如只读取未读邮件、只读取指定发件人发送的邮件,减少无效数据处理量
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

