Power Automate从邮件提取数据至SharePoint列表遇问题求助
Power Automate邮件字段提取数组索引越界问题解决办法
问题根源
你触发的邮件正文是HTML格式(JSON输出中isHtml为true,body字段是完整HTML代码),用\n拆分HTML正文只会生成仅含1个元素的数组,此时访问索引1必然触发「数组索引超出范围」错误。你看到的带换行的原始输出实际是bodyPreview字段的纯文本内容,而非body字段的HTML内容。
解决方案
方案1:直接使用bodyPreview字段(最简方案)
bodyPreview本身就是带\r\n换行的纯文本,可直接拆分提取字段:
- 提取Name行的表达式:
split(triggerOutputs()?['body/bodyPreview'], '\r\n')[1]
- 进一步提取Name的具体值(去除前缀和空格):
trim(split(split(triggerOutputs()?['body/bodyPreview'], '\r\n')[1], ': ')[1])
方案2:将HTML正文转为纯文本后处理
若bodyPreview内容不全,需使用body字段时,先通过「Html to text」动作转换:
- 添加Html to text动作,输入源选择邮件的
Body字段 - 对转换后的纯文本拆分,示例表达式:
split(outputs('Html_to_text')?['body'], '\n')[1]
异常防护(可选)
为避免邮件格式异常导致的索引越界,可添加长度判断:
if(greater(length(split(triggerOutputs()?['body/bodyPreview'], '\r\n')), 1), split(triggerOutputs()?['body/bodyPreview'], '\r\n')[1], '')
内容的提问来源于stack exchange,提问作者fleshbot
相关产品推荐
相关产品推荐

