0

ユーザーが電子メール テンプレートを構成できる WinForms アプリケーションがあります。この電子メール テンプレートは、後でデータベースからクライアント データとマージされ、SMTP 経由で送信されます。

私はすべて正常に動作していますが、ユーザーがテンプレート本文内に画像を保存すると問題が発生します。私は DevExpress RichEdit コントロールを使用して、ユーザーがこの電子メール本文を作成できるようにしています。そのコントロールは、送信に使用する HTML に変換します。画像がある場合は、data-uri を使用して画像を直接 HTML に埋め込みます。

この問題は、data-uri 画像を使用してこの方法でメールを送信すると発生します。すべてのクライアントが適切にレンダリングするとは限りません。Outlook でテストしたところ、うまくいかないようです。一部の Web ベースの電子メール クライアントが機能することはわかっていますが、少なくとも広く使用されている電子メール クライアントについては、これが常に機能する必要があります。

他の人がこの問題を解決したかどうか疑問に思っています。ここで最善の解決策は何ですか? 画像を添付ファイルとして送信し、添付ファイルを参照できると思いますが、これがベスト プラクティスかどうかはわかりません。ただし、別の方法として、各画像をサーバーのどこかにホストし、画像を (DB のように) 保存するサービスを作成し、ID を使用して Web 経由でこの画像をクエリする方法を提供します。次に、私のメールは img src=site/getImg?imgID=xxx タイプのものを使用します。ただし、これは私が達成したいことをするのに大変な作業のように思えます。もっと簡単なことでそれを回避できることを願っています。

アドバイスをよろしくお願いします!!

4

2 に答える 2

0

添付ファイルとして画像を追加することもできますが、ペイロードが大きくなり、帯域幅の使用率が高くなるという欠点があります。.net で添付ファイルを追加するコードは非常に単純です。

var message = new MailMessage();
foreach (string path in attachmentPaths)
{
    if (File.Exists(path))
    {
        message.Attachments.Add(new Attachment(path));
    }
}

一方、Web 上のどこかに保存されている画像を参照すると、メールのサイズが小さくなり、画像を要求するクライアントで追跡データを収集できるようになります。もちろん、ほとんどの電子メール クライアントは最初に画像をダウンロードするかどうかをユーザーに尋ねます。

于 2013-06-05T16:02:54.117 に答える