我正在开发 VB.NET 中的邮件应用程序。邮件应用分两步发送邮件:
1.它将电子邮件正文(rtf)转换为HTML
2.然后它将转换后的 HTML 作为电子邮件正文发送
对于这些,我正在使用EASendMail(发送电子邮件)、Itenso RTF2HTML 转换器(将 RTF 转换为 HTML)。现在我的电子邮件正文基本上是一个 RichTextBox(bodytxt.text)。使用的代码是:
Imports Itenso.Rtf.Converter.Html
Imports EASendMail
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()
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 = html1
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
Dim r As Integer
If ListBox1.Items.Count <= 0 Then
Else
oMail.AddAttachment(ListBox1.Items(r))
End If
oSmtp.LogFileName = Application.StartupPath & "\maillog.OFPTX"
oSmtp.SendMail(oServer, oMail)
现在这段代码可以正常工作,并将电子邮件作为 HTML-maintaining all text formatting 发送。问题是,假设我在富文本框中添加了一张图片,然后发送了图片,但无法从我的邮件客户端的收件箱中打开/查看它。在 Gmail 中,它显示为损坏的图片和“在新选项卡中打开图片” " show "我们无法显示此图像"...
1.我做错了什么?如何将图像不作为附件发送,而是作为电子邮件正文的一部分发送?
2.我的代码可以改进吗?