2016-06-29 31 views
0

メールメッセージとしてSMTPサーバーとOutlookテンプレートを使用して電子メールを送信します。vb.netはsmtpとoutlook.CreateItemFromTemplateを使用して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呼び出しをサポートしている限り、インターフェイスにキャストできます。

答えて

0

BCLのMailMessageとOutlookのMailItemの間に直接変換はありません。 SendUsingAccountプロパティを設定して、MailItemを送信するアカウントを表すAccountオブジェクトを設定できるようにすると、Outlookの別のアカウントからMailItemを送信できます。

How To: Create and send an Outlook message programmaticallyの記事が参考になる場合があります。

0

Outlook.MailItem明らかに、System.Net.Mail.MailMessageオブジェクトについては何も知られていません。

OutlookメッセージをMIMEメッセージに変換したり、すべてのMailMessageプロパティを明示的に入力してから送信するのはあなたの責任です。

関連する問題