【问题标题】:Send Outlook Email with Table in VB.net在 VB.net 中发送带有表格的 Outlook 电子邮件
【发布时间】:2016-12-21 19:36:53
【问题描述】:

我正在使用以下代码生成并打开 Outlook 电子邮件。但是我需要能够插入一个带有一些变量的表格,而我当前的方法只允许基本文本,有人可以建议一种我可以整合表格的方法吗?

  Try
       lblStatus.Text = "Opening OutLook Mail, Please Wait..."
        My.Application.DoEvents
        Dim Outl As Object
        Outl = CreateObject("Outlook.Application")
        If Outl IsNot Nothing Then
            Dim omsg As Object
            omsg = Outl.CreateItem(0)
            omsg.body = "Table should go here"
            omsg.To = "*address goes here"
            omsg.subject = SubjectLine
            'set message properties here...'
            omsg.Display(false) 'will display message to user
            lblStatus.Text = "Outlook Mail Template Opened."
            My.Application.DoEvents
        End If
    Catch ex As Exception
        lblStatus.Text = "Opening OutLook Mail | Error Encountered"
           My.Application.DoEvents
        'log error
    End Try

下面是表格的示例:

显然 Outlook 使用了格式化代码,但我不知道如何将它从 Visual Basic 发送到电子邮件中。

【问题讨论】:

  • HTMLBody = true。然后你就可以很容易地建表了。
  • 我不想使用 HTML,因为接收器可能没有启用它,因此不会一直正确显示。我目前的想法是让vb编辑一个.oft的outlook模板。

标签: vb.net email outlook


【解决方案1】:

首先从您的代码中获取 DoEvents()。他们没有任何帮助。

对于表格,最简单的方法是将消息正文构建为包含表格的 HTML 字符串。当然,这需要电子邮件集的接收者接受 HTML。

【讨论】:

  • 我不想使用 HTML,因为接收器可能没有启用它,因此不会一直正确显示。我目前的想法是让vb编辑一个.oft的outlook模板。
  • 在这种情况下,DoEvents() 正在被使用。有一个单独的线程处理 UI 更新会更好(如果应用程序的大小/架构证明它是合理的) - 但是我们不知道 OP 的应用程序甚至使用多线程(或应该)。在这种情况下,它完成了工作。你的其余答案都是正确的。
  • 看看这个...你可能明白 DoEvents(); 的一些问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2016-11-01
相关资源
最近更新 更多