使用Microsoft Graph回复邮件时添加换行失效,如何解决?
Microsoft Graph邮件回复API换行失效问题解决
问题场景
使用Microsoft Graph邮件回复API发送回复时,代码中通过\n设置换行:
msg = "This is line 1.\nThis is line 2.\nThis is line 3." var data = JSON.stringify({ "message": { "toRecipients": [ { "emailAddress": { "address": address, "name": name } } ] }, "comment": msg });
但收件人收到的邮件内容显示为:
This is line1.This is line2.This is line3
而非预期的每行分开显示:
This is line1. This is line2. This is line3.
原因
邮件内容默认以HTML格式渲染,\n在HTML中仅会被识别为普通空格,不会解析为换行效果。
解决方法
方法1:使用HTML换行标签<br>
将字符串中的\n替换为HTML的换行标签<br>,HTML渲染时会正确解析为换行:
msg = "This is line 1.<br>This is line 2.<br>This is line 3." var data = JSON.stringify({ "message": { "toRecipients": [ { "emailAddress": { "address": address, "name": name } } ] }, "comment": msg });
方法2:指定邮件为纯文本格式
如果不需要HTML格式,可直接构建邮件的body部分,设置contentType为text,此时\n会被正确解析为换行:
var data = JSON.stringify({ "message": { "toRecipients": [ { "emailAddress": { "address": address, "name": name } } ], "body": { "contentType": "text", "content": "This is line 1.\nThis is line 2.\nThis is line 3." } } });
说明
- 方法1兼容性更好,支持后续添加其他HTML格式(如加粗、列表等);
- 方法2适合仅需简单文本换行的场景,内容不会被HTML解析影响。
内容的提问来源于stack exchange,提问作者samsonmarandi
相关产品推荐
相关产品推荐

