【问题标题】:vb.net send outlook email using smtp and outlook.CreateItemFromTemplatevb.net 使用 smtp 和 outlook.CreateItemFromTemplate 发送 Outlook 电子邮件
【发布时间】:2016-11-01 18:05:41
【问题描述】:

我想使用 SMTP 服务器和 Outlook 模板作为邮件消息发送电子邮件。

Dim application As New Outlook.Application
Dim path As String = "S:\TCM\Vendor.oft"

' Create a new MailItem and set the To, Subject, and Body properties.
Dim newMail As Outlook.MailItem = DirectCast(application.CreateItemFromTemplate(path), Outlook.MailItem)

Dim mail As MailMessage = DirectCast(newMail, MailMessage)

我正在尝试从模板创建邮件项目并将其转换为MailMessage,以便我可以使用 SMTP 服务器发送电子邮件。但是,我收到以下错误。

无法将“System.__ComObject”类型的 COM 对象转换为“System.Net.Mail.MailMessage”类类型。

表示 COM 组件的类型的实例不能转换为不表示 COM 组件的类型;但是,只要底层 COM 组件支持对接口的 IID 的 QueryInterface 调用,它们就可以转换为接口。

【问题讨论】:

    标签: outlook smtp vb.net-2010


    【解决方案1】:

    Outlook.MailItem 显然对System.Net.Mail.MailMessage 对象一无所知。

    您有责任将 Outlook 邮件转换为 MIME 邮件和/或在发送之前明确填充所有 MailMessage 属性。

    【讨论】:

      【解决方案2】:

      在来自 BCL 的 MailMessage 和 Outlook 的 MailItem 之间没有直接转换。您可以通过设置 SendUsingAccount 属性从 Outlook 中的不同帐户发送 MailItem,该属性允许设置一个 Account 对象,该对象表示要在其下发送 MailItem 的帐户。

      您可能会发现How To: Create and send an Outlook message programmatically 文章很有帮助。

      【讨论】:

        猜你喜欢
        • 2013-08-16
        • 1970-01-01
        • 2016-08-27
        • 2022-07-20
        • 1970-01-01
        • 2012-09-22
        • 1970-01-01
        • 1970-01-01
        • 2016-04-17
        相关资源
        最近更新 更多