BluePrism技术咨询:如何跨邮箱收件箱迁移邮件并保留原始内容
针对BluePrism邮件迁移与.eml上传的解决方案
一、服务器端直接迁移邮件(保留原始内容)
你正在使用的Outlook Exchange Web Services (EWS) VBO完全支持无客户端的服务器端邮件迁移,能完整保留邮件原始属性:
- 用EWS的
Copy Item或Move Item动作:这两个操作都是在Exchange服务器层面执行,直接转移原邮件实体,不会像转发那样生成新邮件,发件人、时间戳、邮件头、附件等所有原始信息都会完整保留。 - 迁移example1@example.com到example2@example.com的具体步骤:
- 通过EWS VBO的
Get Mail动作获取example1收件箱中待迁移邮件的Item ID。 - 调用
Copy Item或Move Item动作,将目标文件夹指定为example2@example.com的收件箱(可通过Get Folder List动作获取目标收件箱的ID)。
关键前提:BluePrism连接EWS的账号需拥有两个邮箱的访问权限(如委派权限)。
- 通过EWS VBO的
二、上传.eml文件至收件箱(保留原始内容)
EWS VBO没有直接的.eml上传动作,但可以通过两种服务器端方案实现:
方案1:扩展EWS VBO(推荐)
借助EWS API和MimeKit库(需确保BluePrism环境已部署该库),在BluePrism中添加自定义代码阶段:
- 读取.eml文件的字节流,转换为
MimeMessage对象。 - 调用EWS的
CreateItem接口,将该对象导入目标邮箱的收件箱,完整保留.eml中的所有原始属性。
方案2:POP3SMTP VBO配合Exchange SMTP投递
如果Exchange服务器允许SMTP直接投递到用户收件箱(需开启对应权限),可使用POP3SMTP VBO的Send Email动作:
- 将邮件
To字段设为目标邮箱example2@example.com,SMTP服务器配置为Exchange的SMTP地址,使用拥有投递权限的账号登录。 - 需确保Exchange配置允许直接投递,避免发件人被替换为SMTP登录账号,这样邮件会以原始发件人信息存入目标收件箱。
注意事项
- 所有操作的前提是BluePrism运行账号拥有目标邮箱的读写权限,Exchange端需配置对应委派权限。
- 全程避免依赖Outlook客户端的VBO,确保操作都是服务器端交互。
内容的提问来源于stack exchange,提问作者RickyMasa
相关产品推荐
相关产品推荐

