Power Apps问题:如何通过查找字段获取邮箱地址并发送邮件
Power Apps邮件发送失败问题分析与解决
问题出在两个核心点:
- SubmitForm是异步操作:你在按钮里连续执行
SubmitForm(AddForm1)和SendEmail,SubmitForm还没完成提交、生成LastSubmit记录,就已经执行了邮件发送逻辑,导致拿不到正确的关联邮箱地址。 - 查找字段的引用方式错误:查找字段存储的是关联记录的ID和显示值,不是直接的邮箱字段,直接用
DivisionEmailAddress无法从提交后的记录中获取对应部门的邮箱。
具体修改步骤:
简化确认按钮的代码:只保留提交表单的逻辑,把邮件发送和页面跳转放到表单的
OnSuccess事件里(这个事件会在表单提交成功后自动触发,确保LastSubmit已经生成)。
按钮代码改为:SubmitForm(AddForm1)设置表单的OnSuccess属性:在这里处理邮件发送和页面跳转,正确获取关联部门的邮箱:
// 保存提交后的记录 Set(varSubmittedRecord, AddForm1.LastSubmit); // 通过查找字段的ID,从ICTDivList中匹配对应的部门邮箱 Set(varDivisionEmail, LookUp(ICTDivList, ID = varSubmittedRecord.'ICT Division Name'.ID, DivisionEmailAddress)); // 发送邮件 Office365Outlook.SendEmail(varDivisionEmail, "Testing", "Services Requested: " & varSubmittedRecord.Title); // 跳转页面 Navigate(Screen1, ScreenTransition.Fade)
补充说明:
- 用
OnSuccess替代按钮里的连续执行,能确保只有在表单提交成功后才会发送邮件,避免异步操作导致的时序问题。 - 通过
LookUp根据查找字段的ID匹配ICTDivList的记录,能准确获取到对应部门的邮箱地址,不会出现数据不匹配的情况。
内容的提问来源于stack exchange,提问作者user3033348
相关产品推荐
相关产品推荐

