You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vue+Vuetify前后端维护MS Graph邮件的换行格式

解决邮件正文换行失效问题

问题根源

你后端构建MS Graph的Message对象时,指定了正文类型为Html,但传入的内容是带\n的纯文本——HTML渲染规则里,\n只会被当作普通空白符,不会解析成换行,所以最终收到的邮件是单行显示。

可行处理方案

方案一:后端替换(推荐,更可控)

在后端对邮件正文做转换:把连续的\n\n替换成段落标签切换</p><p>,单个\n替换成HTML换行标签<br>,再给整个内容包裹<p>标签,保证分段和换行都生效。

修改后端代码如下:

// 预处理正文换行逻辑
var processedBody = $"<p>{email.Body.Replace("\n\n", "</p><p>").Replace("\n", "<br>")}</p>";

var message = new Message
{
    Subject = email.Subject,
    Body = new ItemBody
    {
        ContentType = Microsoft.Graph.BodyType.Html,
        Content = processedBody,
    },
    // 其余字段保持不变
    ToRecipients = ToRec,
    CcRecipients = CcRec,
    BccRecipients = BccRec,
    Attachments = attachments,
};

方案二:前端提前处理

如果想在前端完成转换,在把textModel通过FormData发送给后端前,替换换行符:

// 处理换行:连续换行转段落,单个换行转<br>
let processedBody = textModel.replace(/\n\n/g, '</p><p>').replace(/\n/g, '<br>');
processedBody = `<p>${processedBody}</p>`;

// 放入FormData发送
const formData = new FormData();
formData.append('Body', processedBody);
// 其他字段处理...

备选方案:改用纯文本格式

如果不需要HTML格式的排版(比如加粗、链接),可以直接把后端的正文类型改成纯文本,这样MS Graph会直接识别\n为换行:

Body = new ItemBody
{
    ContentType = Microsoft.Graph.BodyType.Text,
    Content = email.Body,
},

内容的提问来源于stack exchange,提问作者Qiuzman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 23:43:00