发送 VB.NET 后电子邮件不保持格式
Posted
技术标签:
【中文标题】发送 VB.NET 后电子邮件不保持格式【英文标题】:Email doesn't maintain formatting after sending 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 发送吗?
在分配该文本时放置一个调试点,并使用文本可视化器查看它实际分配的内容
对不起,我不明白,你能解释一下吗?
【参考方案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
【讨论】:
以上是关于发送 VB.NET 后电子邮件不保持格式的主要内容,如果未能解决你的问题,请参考以下文章