問題

マネージコード内からのMAPI関数の使用は正式にはサポートされていません。どうやら、MAPIは独自のメモリ管理を使用しており、マネージコード内でクラッシュして燃焼します(ここで )

私がしたいのは、件名、本文、1つ以上の添付ファイルを持つデフォルトのemailクライアントを起動することだけです。

だから私は MAPISendDocuments を調べていて、うまくいくようです。しかし、私は実際にプロダクションコードで関数を使用する勇気を集めることができませんでした。

誰もこの機能をたくさん使っていますか?ホラーストーリーはありますか?

PS。いいえ、添付ファイルのコマンドライン引数を持つShellExecute Outlook.exeはありません。

PPS。添付ファイルのサポートは要件なので、mailto:ソリューションは私のためにそれをカットしません。

  ベストアンサー

必要なことを行い、メインアプリから呼び出すcommand-lineパラメータ(またはStandardInputへのパイプ)を取る別のヘルパーEXEを用意してください。これは、メインアプリのプロセススペースの外にMAPIのものを保持します。さて、あなたはまだMAPIと.NETを混在させていますが、非常にショートライブプロセスです。前提は、MAPIとCLRがlonger-r

Dmitry Streblechenkoの素晴らしい Redemption Data Objects ライブラリを使用して、このような "shim"コードをJScriptに書き込んで別々のプロセスにCLRとMAPIの世界を保持しますが、サポートされた方法で呼び出すことができます。

@Chris Fournier。管理されていないDLLを書く。この問題は、同じプロセスでMAPIとマネージコードを混在させているため、これは機能しません。

  同じタグがついた質問を見る

.netemailpinvokemapi