【问题标题】:Email doesn't maintain formatting after sending VB.NET发送 VB.NET 后电子邮件不保持格式
【发布时间】:2017-11-20 18:12:29
【问题描述】:

我正在使用 EASendmail 发送电子邮件。电子邮件正文是一个富文本框。如果我进行格式化,例如一行下一行并发送电子邮件,电子邮件失去了它的格式。例如,如果键入:

Hello,
How are you ?

在富文本框中发送,然后变成:

Hello,How are you

如何维护文本格式?还有一件事,如果我将任何图像添加到我的富文本框中,电子邮件正文不会保留图像..我的意思是,接收者只收到电子邮件正文的文本,而不是图像。如何解决这些问题?

我发送电子邮件的代码是:

 Dim oMail As New SmtpMail("TryIt")
 Dim oSmtp As New EASendMail.SmtpClient()
 oMail.From = fromtxt.Text
 oMail.To = New AddressCollection(totxt.Text)
 oMail.Subject = subjecttxt.Text
 oMail.HtmlBody = bodytxt.Text
 Dim oServer As New SmtpServer(MailConfig.host.Text)
 oServer.Port = MailConfig.port.Text
 oServer.ConnectType = SmtpConnectType.ConnectSSLAuto
 oServer.User = fromtxt.Text
 oServer.Password = MailConfig.password.Text
 oSmtp.SendMail(oServer, oMail)

编辑

我什至尝试过:

  oMail.HtmlBody = "<html><body>" + bodytxt.Text + "</body></html>"

但没有结果

【问题讨论】:

  • 您是否尝试过以 HTML 格式发送正文?
  • 富文本与 HTML 不同。你必须以某种方式转换它。我不确定如何嵌入图像 - 从未尝试过。
  • @DiscipleMichael, oMail.HtmlBody = bodytxt.Text ..它不是将富文本框作为 html 发送吗?
  • 在分配该文本时放置一个调试点,并使用文本可视化器查看它实际分配的内容
  • 对不起,我不明白,你能解释一下吗?

标签: vb.net email text richtextbox text-formatting


【解决方案1】:

这是一个简单的解决方法。 我所要做的就是将我的 RTF 转换为 HTML,然后发送它..RTF-TO-HTML-CONVERTER

下载工程文件后,必须将引用添加到bin文件夹中的.dll文件中。然后:

  Imports Itenso.Rtf.Converter.Html
  Imports Itenso.Rtf.Support
  Imports Itenso.Rtf

   Dim rr As String = bodytxt.Rtf.Replace("\0", "")
    Dim rtfDocument As IRtfDocument = RtfInterpreterTool.BuildDoc(rr)
    Dim htmlConverter As New RtfHtmlConverter(rtfDocument)
    Dim html1 As String = htmlConverter.Convert()

    ' my other codes in-between(read my post)

     oMail.HtmlBody = html1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 2014-06-22
    相关资源
    最近更新 更多