需求:对重要的邮件进行本地备份,如何批量下载outlook邮件(要求以收件时间,发件人邮件地址、邮件主题命名文件名,特殊字符以下划线”_”替换,下载文件格式为.eml格式。)
解决方案:
Step1:
①定义保存文件路径
String Save_Msg_Path= "C:\Users\admin\Desktop\Study_Folder_ForUipath\Download_Outlook_Mails\"
![](https://img.haomeiwen.com/i14568858/cb6e09add63e7bb6.png)
②使用Get outlook mail message控件
作用:检索outlook邮件列表
![](https://img.haomeiwen.com/i14568858/af4e403dcc63b78b.png)
![](https://img.haomeiwen.com/i14568858/b1118f57cfa11067.png)
属性说明:
Input:
Account:指定需要检索的邮件账户地址
MailFolder:指定获取检索信息的邮件文件夹,根据邮件中显示的文件夹名,例如中文界面:“收件箱”,英文界面:”Inbox”
Options:
Filter:可以根据关键字进行邮件信息过滤
MarkAsRead:是否将检索到的邮件标记为已读,默认不选
OnlyUnreadMessages:是否只检索未读邮件,默认勾选
Top:从邮件列表顶部开始检索的消息数,默认消息数为30,超过30封的建议使用.Net内置int32.maxValue函数
Output:
返回值:Mails_List 类型List<MailMessage>
Step2:
遍历MailMessage列表,输出保存.eml文件
![](https://img.haomeiwen.com/i14568858/57f6303dd9b4d47b.png)
说明:Msg为Mailmessage类型
定义邮件主题:String Mail_Subject=Msg.Subject.toString
定义正则表达式(单斜杠\需要转义):Regex Par=New Regex(“[:/\\*?<>|]”)
邮件主题格式化:String F_Mail_Subject=Par.Replace(Mail_Subject,”_”)
定义收件时间:String Mail_SendTime=Msg.Headers.Get(“DateRecieved”)
收件时间格式化:String F_Mail_SendTime=CDate(Mail_SendTime).toString(“yyyyMMdd_HHmmss”)
定义发件人邮件地址:String Mail_Sender=Msg.Sender.Address
使用Save Mail Message控件,保存.eml文件
![](https://img.haomeiwen.com/i14568858/5cb548e002ed6149.png)
程序验证:
收件箱\测试
![](https://img.haomeiwen.com/i14568858/931f40dc222bf788.png)
保存内容:
![](https://img.haomeiwen.com/i14568858/2a9edc4bb0ece15a.png)
![](https://img.haomeiwen.com/i14568858/ea7f11b69d237a46.png)
网友评论