Logic Apps邮件正文嵌入Base64图片:多张图片显示问题求助
在Logic Apps邮件正文中显示多张Base64图片的解决方案
问题根源
你之前的操作是在For_each循环里直接将单张图片的HTML赋值给变量,导致每次循环都会覆盖变量原有内容,最终只保留最后一张图片的代码。正确逻辑是循环累加所有图片的HTML标签。
具体实现步骤
初始化邮件正文变量
创建一个字符串类型的变量(例如命名为EmailBodyContent),先填入邮件的固定内容(修正了原HTML里的拼写错误text-alig为text-align):<h1 style="text-align:center">Demo</h1> <strong><h3>Location</h3></strong> <hr/> <strong>Lat:</strong> @{triggerBody()?['latitude']} <strong>Lon:</strong> @{triggerBody()?['longitude']} <br /> <br /> <strong><h3>capture On:</h3></strong> <hr/> @{triggerBody()?['catpuredon']} <br /> <br /> <strong><h3>my Car</h3></strong> <hr/> @{triggerBody()?['carphoto']} <br /> <br /> <strong><h3>Car Photos:</h3></strong> <hr /> <br />遍历图片数组并累加HTML
添加For_each循环,选择遍历你的image数组。在循环内部添加Set Variable操作,对EmailBodyContent执行拼接:- 表达式填写:
concat(variables('EmailBodyContent'), '<img src="', items('For_each'), '" style="display:block; margin:10px 0; max-width:600px;" />')
说明:
- 用
concat函数将现有内容和新图片的HTML标签拼接 - 给
src属性添加双引号,避免HTML解析异常 - 新增样式让图片块级显示、带间距、限制最大宽度,提升可读性
- 表达式填写:
使用变量作为邮件正文
循环结束后,在发送邮件的操作中,将邮件的HTML正文设置为变量EmailBodyContent即可。
额外注意事项
- 确认
image数组中的每个元素都是完整的Base64图片格式(必须包含data:image/jpeg;base64,前缀) - 若图片过大,可在img标签的style中添加
width:100%;等样式适配邮件显示
内容的提问来源于stack exchange,提问作者PCA
相关产品推荐
相关产品推荐

