SmtpClient.send发邮件怪事,邮件内容连续空格被合并成了一个,求解!

lxlnet 2021-04-09 07:54:35
用SmtpClient发邮件,期望效果是邮件Body能连续显示多个空格。
代码:


using System.Net.Mail;
……
public class SmtpHelper : SmtpClient
{
……

public string Send(string subject,
string body,
bool isBodyHtml,
MailAddress from,
MailAddress replayTo,
List<MailAddress> to,
List<MailAddress> cc,
List<MailAddress> bcc,
MailPriority priority,
List<Attachment> attachments)
{
MailMessage message = new MailMessage();
……
message.Body = "3个空格:【 】";
message.BodyEncoding = System.Text.Encoding.UTF8;
……

this.Send(message);


调用SmtpClient 的Send(message)方法,结果邮件一发出来,空格就被自动合并成一个了。
邮件发出来的效果:
"3个空格:【 】"

尝试用转义:
message.Body = "3个空格:【   】";

邮件发出来的效果:
3个空格:【   】

邮件内容的连续空格对用户来说是有意义的,被SmtpClient给搞没了,真郁闷,各路大神有解决办法吗?


PS:0回复?无解了么?
...全文
464 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxlnet 2021-04-14
  • 打赏
  • 举报
回复
引用 4 楼 dugupiaoyun 的回复:
你确定有设置IsBodyHtml为true吗?不设置的话是不行的。
我验证IsBodyHtml确实为True,&是将body转换为xml的时候转义的,不是Send方法的锅,我大意了,谢谢提醒。
dugupiaoyun 2021-04-13
  • 打赏
  • 举报
回复
你确定有设置IsBodyHtml为true吗?不设置的话是不行的。
dugupiaoyun 2021-04-12
  • 打赏
  • 举报
回复
内容为HTML格式,空格用 就没问题了
lxlnet 2021-04-12
  • 打赏
  • 举报
回复
引用 1 楼 dugupiaoyun 的回复:
内容为HTML格式,空格用 就没问题了
内容就是html格式的,所以我试过 ,这里为了说明问题body被我简化了。 “ ”的“&”部分被当作特殊字符转义成“&”了,“nbsp;”保持不变,邮件发送出来又变成“ ”了,感觉SmtpClient.Send方法很贱,强制自动处理了一些东西。
enaking 2021-04-12
  • 打赏
  • 举报
回复
对,用 试试。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧