写真付きのHTMLレターを送信する

問題の本質:


実際、私はoutlookが送るものと同じタイプの手紙を見たいです。 すべてが美しいです。 しかし、MailMessageクラスの説明には、そのようなレターの作成方法に関するドキュメントはまったくありません。 たとえば、画像にリンクする代わりに、添付ファイルにある画像の名前を書くと、もちろん表示されますが、添付ファイルとして表示されることもあります(これは本当に望ましくありません)。

起源


.Netツールを使用して、特別なアクションをせずにHTML形式でレターを送信しようとすると、メールシステムおよびメールプログラム(すべてではない)でレターが正しく表示されません。 実際、問題は、写真が添付ファイルとして表示され、場合によっては文字の外観を歪めることです。


解決策


インターネットで大騒ぎして、私はそのようなことは手紙の別のプレゼンテーションの助けを借りてクランクアウトできることを発見しました。
レターを送信するときに、異なる形式で表示するための複数の提出物が含まれることがあります。
しかし、これらのビューをどう処理するかはあまり明確ではありませんでした。ドキュメントを読むと、次のことがわかりました。

添付ファイルなしでは表示できない写真付きのレターを作成するには、代替ビューを作成し、リソースとして写真をアップロードする必要があります


この例では、代替ビューを作成してレターに追加するコードのみを提供します
var mailMessage = new System.Net.Mail.MailMessage(); var mailHTML = //        var images = new List<System.Net.Mail.LinkedResource>(); //        //         img   System.Net.Mail.LinkedResource //      Images.         (  src) //   "cid:{ }",  { } -   ContentId   LinkedResource ... //             var htmlView = AlternateView.CreateAlternateViewFromString(mailHtml, Encoding.UTF8, MediaTypeNames.Text.Html); //         images.ForEach(htmlView.LinkedResources.Add); //         mailMessage.AlternateViews.Add(htmlView); //         

Source: https://habr.com/ru/post/J178469/


All Articles