vb.net отправляет электронную почту Outlook, используя smtp и outlook.CreateItemFromTemplate
Я хотел бы отправить электронное письмо, используя 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-сервер для отправки электронной почты. Однако я получаю следующую ошибку.
Невозможно привести объект COM типа "System.__ComObject" к типу класса "System.Net.Mail.MailMessage".
Экземпляры типов, которые представляют компоненты COM, не могут быть преобразованы в типы, которые не представляют компоненты COM; однако они могут быть преобразованы в интерфейсы, если базовый компонент COM поддерживает вызовы QueryInterface для IID интерфейса.
2 ответа
Там нет прямого преобразования между MailMessage
из BCL и Outlook MailItem
, Вы можете отправить MailItem из другой учетной записи в Outlook, установив свойство SendUsingAccount, которое позволяет установить объект Account, представляющий учетную запись, под которой должен отправляться MailItem.
Может оказаться полезной статья " Как: создать и отправить сообщение Outlook программным путем".
Outlook.MailItem
очевидно, ничего не известно о System.Net.Mail.MailMessage
объект.
Вы несете ответственность за преобразование сообщения Outlook в сообщение MIME и / или явное заполнение всех свойств MailMessage перед его отправкой.