如何用Power Automate导出邮件附件并按日期整理
Power Automate 邮件附件按日期分类存储完整流程
核心步骤拆解
1. 选择触发/获取邮件的动作
- 处理新收到的邮件:用「当新邮件到达(V3)」,勾选「仅包含附件」选项,减少无效触发。
- 处理历史积压邮件:用「获取邮件(V3)」,设置筛选条件为
HasAttachments eq true,还可追加日期范围(比如ReceivedDateTime ge '2024-01-01')缩小处理范围。
2. 提取并格式化邮件发送日期
直接用Power Automate表达式生成yyyy_MM格式的文件夹名,无需手动拼接:
formatDateTime(triggerOutputs()?['body/sentDateTime'], 'yyyy_MM')
如果处理历史邮件,把triggerOutputs()替换为items('应用到每一个_邮件')?['sentDateTime'],对应遍历邮件的循环变量
建议把这个值存入字符串变量(添加「初始化变量」动作),后续步骤直接调用变量更高效。
3. 自动检查并创建日期文件夹
用「获取文件夹元数据(路径)」动作,路径设置为你的存储根目录 + 日期文件夹名(比如/OneDrive/邮件归档/@{variables('日期文件夹名')}):
- 正常返回(状态码200):文件夹已存在,直接跳转到保存附件步骤。
- 运行失败:文件夹不存在,在「失败时」分支添加「创建文件夹」动作,父文件夹选根目录,文件夹名填变量中的
日期文件夹名。
4. 批量保存附件到对应文件夹
添加「应用到每一个」循环,选择邮件的attachments列表,循环内添加「保存附件到OneDrive」(或SharePoint)动作:
- 文件夹路径:根目录 + 日期文件夹名(比如
/OneDrive/邮件归档/@{variables('日期文件夹名')}) - 文件名:
items('应用到每一个_附件')?['name']
实用优化技巧
- 避免重复处理:保存附件后,添加「更新邮件」动作,给邮件标记自定义类别(比如「附件已归档」),后续获取邮件时筛选
Categories ne '附件已归档',防止重复保存。 - 过滤超大附件:在附件循环里加条件判断
items('应用到每一个_附件')?['size'] le 10485760(10MB),跳过超大附件或发送提醒。 - 多邮箱适配:把邮箱账号设为变量,在触发/获取邮件动作里选择变量值,方便批量配置多邮箱处理。
内容的提问来源于stack exchange,提问作者Ludo
相关产品推荐
相关产品推荐

