MimeKit.BodyBuilder HtmlBody中<br>与 换行失效问题求助
解决HTML邮件换行失效问题
针对你遇到的<br>标签和\n转义字符无法实现换行的问题,可从以下几个方向排查解决:
1. 完善HTML结构
当前的HtmlBody缺少<body>标签,部分邮件客户端对不完整的HTML解析存在兼容问题。补充完整结构后换行标签更易被识别:
Content = new MimeKit.BodyBuilder() { HtmlBody = $"<html><body>Feedback: {feedback.feedback}<br>WiWoUserID: {user.WiWoUserID}<br>Email: {userEmail}<br>Telefoonnummer: {user.PhoneNumber}</body></html>" }
2. 对动态内容进行HTML转义
如果feedback.feedback、user.WiWoUserID等变量包含特殊字符(如<、>、&),会破坏HTML结构导致<br>失效。使用WebUtility.HtmlEncode对变量内容转义:
// 需引用System.Net命名空间 var encodedFeedback = WebUtility.HtmlEncode(feedback.feedback); var encodedUserId = WebUtility.HtmlEncode(user.WiWoUserID.ToString()); var encodedEmail = WebUtility.HtmlEncode(userEmail); var encodedPhone = WebUtility.HtmlEncode(user.PhoneNumber); Content = new MimeKit.BodyBuilder() { HtmlBody = $"<html><body>Feedback: {encodedFeedback}<br>WiWoUserID: {encodedUserId}<br>Email: {encodedEmail}<br>Telefoonnummer: {encodedPhone}</body></html>" }
3. 确认邮件服务的内容处理逻辑
检查_emailService.Send方法是否正确传递BodyBuilder生成的HTML内容,是否存在将HTML强制转换为纯文本的逻辑。MimeKit的BodyBuilder设置HtmlBody后,会自动生成正确的text/html类型邮件体,若服务端有额外处理可能导致格式丢失。
4. 验证邮件客户端视图
部分邮件客户端默认以纯文本模式显示邮件,需手动切换到HTML视图查看效果,确认换行是否生效。
内容的提问来源于stack exchange,提问作者NietTeDoen
相关产品推荐
相关产品推荐

