Smtp2Go无法识别换行符?ApiClient发送邮件换行失效解决方法
解决Smtp2Go邮件纯文本换行失效问题
你的问题出在未正确设置邮件内容类型为纯文本——默认情况下Smtp2Go的EmailMessage会把传入的Body当作HTML内容,而HTML里的普通换行符(\n)不会被识别为换行,导致所有内容挤在一行显示。
解决步骤
明确指定邮件为纯文本格式
无需手动添加自定义Header,直接通过EmailMessage的属性配置:- 用
BodyText字段存储纯文本内容 - 将
IsHtml属性设为false,告知客户端这是纯文本邮件
- 用
修改后的完整代码
public async Task<bool> SendEmailAsync(EmailNotificationEvent notification) { // 初始化邮件消息,明确指定纯文本内容和格式 var message = new EmailMessage(notification.Subject, _smtp2GoSettings.EmailSender, notification.Recipients) { BodyText = notification.Body, IsHtml = false }; var response = await _smtpService.SendEmail(message); if (!response.Data.Failures.Any()) return true; foreach (var failure in response.Data.Failures) _logger.LogWarning( "Smtp2Go failure detected. Error: {error}, ErrorCode: {errorCode} Failure: {failure}", response.Data.Error, response.Data.ErrorCode, failure); return false; }
额外说明
如果需要同时支持HTML和纯文本双版本邮件,可以同时设置BodyHtml和BodyText字段,邮件客户端会自动根据环境选择合适的版本显示。但如果仅需纯文本邮件,按上述配置即可确保换行符被正确解析。
内容的提问来源于stack exchange,提问作者CBC_NS
相关产品推荐
相关产品推荐

