2

C#3を使用してHTML形式の電子メールを送信しようとしていますOutlook.MailItem

Outlook.MailItem objMail = (Outlook.MailItem)olkApp.CreateItem(Outlook.OlItemType.olMailItem);
objMail.To = to;
objMail.Subject = subject;
objMail.HTMLBody = htmlBody;

電子メールは、RTFコントロール(TXテキストコントロール)から保存することによって外部で生成されます。これにより、<<FileName>>_filesサブディレクトリに保存されている画像へのリンクを含むHTMLが生成されます。例:

<img border="0" src="file:///C:/Documents%20and%20Settings/ItsMe/Local%20Settings/Temp/2/zbt4dmvs_Images/zbt4dmvs_1.png" width="94" height="94" alt="[image]">

この方法でメールを送信すると、リンク切れのメールが生成されます。

Outlook 2007を電子メールクライアントとして使用し、Wordを電子メールエディターとして使用し、RTF([オプション]タブ、[形式]タブグループ)に切り替えると、レイアウトが保持され画像がインライン化されます。

プログラムでこれを行うには、次の方法があります。

var oldFormat = objMail.BodyFormat;
objMail.BodyFormat = Outlook.OlBodyFormat.olFormatRichText;
objMail.BodyFormat = oldFormat;

フォーマットが失われ、画像がマングルされます(画像は[image]画面上のリンクマーカーになり、クリック可能になりますが、画像は表示されなくなります)。MailItem.BodyFormatプロパティのドキュメントに、「プロパティをRTFからHTMLに、またはその逆に切り替えると、すべてのテキスト形式が失われるBodyFormat」と記載されていることを考えると、これは驚くべきことではありません。

残念ながら、を作成するときに設定される読み取り専用プロパティであるため、のTypeそれぞれAttachmentのをに変更する簡単な方法はないようです。MailItem.AttachementsOlAttachmentType.olByValueAttachment

頭に浮かぶアプローチは、HTMLをウォークし、<img>タグをマーカーに置き換え、プログラムでMailItemテキストをウォークし、のを挿入することOutlook.AttachmentですType OlAttachmentType.olByValue

<img>別のオプションは、使用するリンクを変換src="cid:uniqueIdN"し、参照されたIDを持つ添付ファイルとして画像を追加することです。

それで、質問に...理想的には償還のようなサードパーティのツールに入ることなく、リンクされた画像を埋め込み画像に変換する方法はありますか?RTFに変換すると結果が得られますが、そのようにすることは決して前提条件ではなく、明らかに忠実度を失う可能性があります。

4

2 に答える 2

1

.net > 2.0 を使用しているため、メール メッセージの作成のために System.Net.Mail 名前空間を調べることができます。非常にカスタマイズ可能で、あなたと同様のタスクに非常に使いやすいことがわかりました. 私が抱えていた唯一の問題は、正しいエンコーディングを使用していることを確認することであり、レイアウトには HTML テーブルを使用する必要がありました (css は正しく機能しません)。これがどのように機能するかを示すリンクがいくつかあります...

それができない場合は、コンテンツ ID ルートを使用して、画像を添付ファイルとして埋め込むことをお勧めします。もう 1 つのオプションは、Web サイトで画像を公開してホストし、html 内の画像リンクを公開画像に変更することです。

HTML メールは簡単にスパムのように見え、メール サーバーやクライアントによってそのように扱われる可能性があることを認識しておく必要があります。社内で使用するためだけのもの (私に起こったこと) でさえ、Outlook の迷惑メール フォルダーに入る可能性があります。

于 2009-02-02T13:12:52.680 に答える
0

DOH!、実際に Outlook 2007 で電子メールを送信すると、画像が強制的に埋め込まれます。

送信済みアイテムのサイズ 8K は、私が見ていた下書きサイズの 60K (RTF) と下書きサイズの 1K (RTF に変換されていない HTML) よりもはるかに小さいです。

だから、ずっとDoing What I Meanでした。ぐら。

同様に混乱した精神状態の人を助けるために、QとAをここに残します.

ところで、私の旅で見つけたいくつかの便利なリンク:

メール送信例

さまざまな品質の他の例を含む一般的な Q&A サイト

于 2009-02-02T13:12:59.857 に答える