C#からOutlookを利用してメール送信時の例外

C#の自作プログラムからOutlookを利用してメール送信のやり方は、ネット上を探すとすぐみつかるのですが、いざやろうとしたら次の様な例外が発生してしまいました。そのとき、私のやった解決法をメモしておきます。

発生した例外はこれ↓

system.invalidcastexception: ‘型 ‘microsoft.office.interop.outlook.applicationclass’ の com オブジェクトをインターフェイス型 ‘microsoft.office.interop.outlook._application’ にキャストできません。iid ‘{00063001-0000-0000-c000-000000000046}’ が指定されたインターフェイスの com コンポーネント上での queryinterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: 要素が見つかりません。 (hresult からの例外:0x8002802b (type_e_elementnotfound))。’

ネット上を検索すると、過去にいくつかのバージョンのOfficeをインストールやアンインストールすると不要なレジストリ情報が残ってしまい、不具合につながるとか情報がでてきました。参考にさせていただいたサイトはこちらです。
https://elleneast.com/?p=866
ただ、私の環境ではおかしなレジストリは見つかりませんでした。

そこで、次のように、Officeのクイック修復をしたところ例外は発生しなくなりました。

コントロールパネルの「Microsoft Office Personal 2016」を選択し「変更」をクリック。

クイック修復を実行

コメント