使用SmtpClient发送MailMessage的HTML不正确

时间:2013-12-10 22:46:43

标签: c# .net .net-4.0 html-email

我正在使用System.Net.Mail.SmtpClient.Send()发送System.Net.Mail.MailMessage对象。 MailMessage对象将IsBodyHtml属性设置为true。我的App.config文件中有以下设置:

<system.net>
  <mailSettings>
    <smtp deliveryMethod="SpecifiedPickupDirectory" >
      <specifiedPickupDirectory pickupDirectoryLocation="C:\Pickup"/>
    </smtp>
  </mailSettings>
</system.net>

生成EML文件时,电子邮件正文中的某些HTML未正确转换。例如:

<img style="width:120px;height:160px;padding-left:2px;" src="http://images.mysite.com/image280.jpg" />

...变为

<img style=3D=
"width:120px;height:160px;padding-left:2px;" src=3D"http://images=
..mysite.com/image280.jpg" />

注意src属性中mysite.com之前的额外时间段。这导致图像链接被破坏而不显示。它似乎是如何以EML格式分解行的错误。我在网上找不到任何关于它的文档。

编辑: 我注意到每当一条线需要在'。'处断开时就会发生这种情况。 (期间)性格。它将两个句点放在下一行而不是一行。

This post似乎相关但不确定它是否能解决我的问题。我是否需要更改代码中的Content-Transfer-Encoding属性?

1 个答案:

答案 0 :(得分:3)

我在解答this post的答案时解决了我的问题。我只是将MailMessage对象的BodyEncoding属性设置为System.Text.Encoding.UTF8