如何用Power Automate定时流结合Excel日期触发Power Apps邮件发送?
方案一:Power Automate定时流直接发送邮件(推荐,无需依赖Canvas应用运行)
1. 创建定时触发流
- 新建流,选择计划触发器,设置触发频率为「每天」,指定具体触发时间(比如每天上午9:00)。
2. 读取Excel表格数据
- 添加**Excel Online (Business)**的「列出表行」动作,选择目标Excel文件及对应的表格。
注意:确保Excel日期列格式统一(比如纯日期无时间),避免后续筛选出错。
3. 筛选出今日日期的行
- 添加筛选数组动作,输入「列出表行」的输出值(
body('列出表行'))。 - 设置筛选条件:
- 左值:
formatDateTime(item()?['你的日期列名称'], 'yyyy-MM-dd')(替换成实际的日期列字段名) - 运算符:等于
- 右值:
utcNow('yyyy-MM-dd')
- 左值:
4. 判断是否存在匹配行
- 添加条件动作,设置判断表达式:
length(body('筛选数组')) > 0 - 条件为「是」时执行邮件发送步骤;「否」则直接结束流。
5. 从Power Apps获取邮件内容
如果收件人、主题、正文需要从Canvas应用动态获取,先在应用内做如下操作:
- 添加一个「保存配置」按钮,OnSelect属性设置为:
用户在应用中填好内容后,点击该按钮即可把值存入配置表。Patch( 配置表, // 替换为你的Dataverse/SharePoint配置表名称 First(配置表), { 收件人: Emails_uitn.Text, 邮件主题: Emailsubject_uitn.Text, 邮件正文: Emailbody_uitn.Text } )
回到流的「条件-是」分支:
- 添加Dataverse(或SharePoint)的「获取行」动作,读取配置表中的最新记录,提取收件人、主题、正文字段值。
6. 发送邮件
- 添加Office 365 Outlook的「发送邮件(V2)」动作,分别填入:
- 收件人:从配置表读取的收件人值
- 主题:从配置表读取的邮件主题值
- 正文:从配置表读取的邮件正文值
方案二:定时流触发Canvas应用的邮件按钮(不推荐,依赖应用运行)
此方案要求Canvas应用必须有用户处于打开状态才能生效,仅适合特殊场景:
1. 在Canvas应用中创建可被流调用的云流
- 在Power Apps编辑器中,点击左侧「数据」>「新建连接」>「Power Automate」,新建一个即时云流,添加「Power Apps」触发器,再添加「Power Apps」的「响应」动作(可选)。
- 把原邮件按钮的逻辑封装成全局变量,比如在应用的OnStart中设置:
然后在云流中添加「Power Apps」的「运行公式」动作,执行Set(SendEmailLogic, Office365Outlook.SendEmailV2(Emails_uitn.Text,Emailsubject_uitn.Text,Emailbody_uitn.Text) )SendEmailLogic。
2. 创建定时流触发云流
- 新建定时流,设置每天触发时间,添加「Power Automate」的「运行流」动作,选择刚才创建的即时云流,触发应用内的邮件发送逻辑。
内容的提问来源于stack exchange,提问作者Sofija Yanez
相关产品推荐
相关产品推荐

