2

我正在开发 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.我的代码可以改进吗?

4

1 回答 1

0

好的,所以我已经多次处理过这个问题。当您将图像拖到富文本框中时,它可能只是在内存中“活在那里”。

富文本框中的标记是什么样的?通常,我使用涉及富文本框(或任何应用程序)的 Web 应用程序来解决此问题的 2 种方法,您可以在其中拖动图像:

  1. 当图像被拖放到富文本框中时,将其保存到服务器或文件服务器 - 并提供链接。现在您可以在电子邮件的 html 中添加标签 图片在 RTB 中被丢弃 -> 链接已提供 在我的 vb.net 项目中,它是一个 asp Web 项目,所以我正在使用 Web 服务,但是 RichTextBox.Rtf 属性可能有效 - 查看 RTF 文件是否包含图像它:https ://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.rtf(v=vs.110).aspx
  2. 将图像转换为数据 URI:https ://www.abeautifulsite.net/convert-an-image-to-a-data-uri-with-your-browser
于 2017-11-23T04:06:09.573 回答