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

C#发送邮件时textarea输入内容换行符丢失问题求助

问题根因

你在代码中设置了msgObj.IsBodyHtml = true,邮件会以HTML格式渲染,而textarea输入的换行符为\n,HTML规范不会将普通换行符识别为换行标记,只会解析为空格,因此收件方看不到换行效果。

解决方案

方案1:保留HTML邮件格式(适配后续富文本需求)

在赋值邮件正文前,将所有换行符替换为HTML换行标签<br/>,修改C#代码中Button1_Click方法的对应部分:

string YourMessageBody = MailBody.Value;
// 新增下面这行,兼容不同系统的换行符
YourMessageBody = YourMessageBody.Replace("\r\n", "<br/>").Replace("\n", "<br/>");

方案2:无需HTML格式可直接关闭HTML模式

如果不需要在邮件中使用富文本样式,直接将代码中的msgObj.IsBodyHtml = true;修改为msgObj.IsBodyHtml = false;即可,纯文本邮件会自动识别\n换行符,无需额外处理。

前端预览修复

你现有JS中的换行替换逻辑不生效,因为replace方法返回新字符串但没有赋值回元素,修改changeBody函数即可让预览正常显示换行:

function changeBody(val) {
    document.getElementById("MailbodyContent").innerHTML = val.replace(/\n/g, '<br>');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:27:03