0

いくつかの退屈な会計業務を行い、そのデータを幸運な受信者に送信する Win Form アプリケーションがあります。Outlook 12.0 Interop オブジェクトを使用しており、アプリケーション環境は XP の Office 2003 から Win 7 の Office 2007 までさまざまです。

私の問題は、送信された電子メールで企業の署名を送信することにあります。2 つの画像が含まれており、これらの画像を埋め込みたいので、本文の一部のように見えます (受信メール クライアントがサポートしていると仮定します)。

これを達成するためにいくつかの異なる方法を試しました。しかし、まだ運がありません!

私が試してみました:

  • 署名フォルダーから html データを抽出し、html img タグの src 属性を変更して「file///」を含めます。これにより、Outlook は 'file///' を 'CID' に置き換え、画像も埋め込むと想定しました... :| と想定すべきではありません。これは、残りの署名を取得するのに最も効果的であることがわかった方法です。

  • (新しい MailItem を作成した後) - MailItem の HTMLBody を取得し、署名を含む関連部分を抽出します... 新しい MailItem オブジェクトがその署名と非常に矛盾しているため、これは機能しませんでした。つまり、新しいアイテムには署名が含まれる場合と含まれない場合があります。:sなぜそれが常にそこにあるとは限らないのか理解できません.コードの他の部分は変更されていません!

ここで GetInspector プロパティに関する別の投稿を読みました...どうやらこれを呼び出すだけで「何か」が実行され、署名が魔法のようにメールアイテムに表示されます...いいえ!

できないこと:

  • 画像をオンラインのどこかに押し込んで、電子メールのhtmlでそれらを指すことはできません。
  • SMTP を使用できません (Outlook を使用する必要があります... ため息)。

最善の方法は、CID をいじる私の元の方法のように思われると考えていますが、Outlook がバックグラウンドで何をしているのかについてはよくわからないため、取得するために他に何をする必要があるかを理解するのに苦労していますメールと一緒に送られてきた画像。

誰かが私が間違っていることや他に何を試すことができるかについて何らかの考えを持っていることを願っています.

コードが役立つかどうかをお知らせください。投稿します(試したコードのほとんどはこのサイトからのものです...リンクが再び見つからないため、この質問が長くなりすぎないようにしています)。

どうもありがとう

4

1 に答える 1

1

これは、使用できる最も効率的または柔軟なソリューションではありませんが、おそらく最も堅牢で移植性があります。イメージ ビットマップをプレーンな HTML に変換し、その HTML を電子メールの署名に埋め込むことができます。

変換は非常に簡単です。私が書いたユーティリティ (オープン ソース) をここで使用できます。

于 2012-11-14T11:16:58.767 に答える