イメージはSQL Serverに保存されています。私は、イメージを取得し、添付ファイルとしてではなく、HTML本文の一部として、MailMessageオブジェクトに配置します。データベースから画像をmailmessageに挿入する方法
ローカルイメージファイルを使用しているサンプルが多数見つかりましたが、データベースのイメージを使用していません。
誰でも私がvb.netでこれを行う方法を知っていますか?
ありがとうございます!
ハビエル
イメージはSQL Serverに保存されています。私は、イメージを取得し、添付ファイルとしてではなく、HTML本文の一部として、MailMessageオブジェクトに配置します。データベースから画像をmailmessageに挿入する方法
ローカルイメージファイルを使用しているサンプルが多数見つかりましたが、データベースのイメージを使用していません。
誰でも私がvb.netでこれを行う方法を知っていますか?
ありがとうございます!
ハビエル
あなたはLinkedResourceとして、データベースから画像を追加する必要があります。 イメージをデータベースからバイトとして取得する場合は、ストリームを使用してLinkedResourceを追加できます。バイトからメモリストリームを作成します。 C#で
コードが、私はあなたがimagetagとのHtmlBodyに画像を含める必要がVB.Net
var view = System.Net.Mail.AlternateView.CreateAlternateViewFromString(text, null, "text/html");
var resource = new System.Net.Mail.LinkedResource(new MemoryStream(bytes), mime);
resource.ContentId = image.Name;
view.LinkedResources.Add(resource);
_message.AlternateViews.Add(view);
にこれを変換することができるはずだと思う:<img src="cid:myuniqueid" alt="img" />
追加することでLinkedResourceでは、イメージをメッセージに含めることができます。しかし、html本文と画像の間にリンクを作成する必要があります。これはhtml本文の「cid:myuniqueid」です。 cidの値は、LinkedResourceオブジェクトのContentIDプロパティの値と等しくなければなりません。ここで
は一例です:
'** Create MailMessage Object
Dim message As New MailMessage()
'** Create HTML view
Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString(htmlbody, System.Text.Encoding.Default, MediaTypeNames.Text.Html)
'** Create resource for the image
Dim lr As New LinkedResource(objStream)
'** Set the contentid for the image resource
lr.ContentId = "myuniqueid"
'** Link image resource and htmlview together
htmlView.LinkedResources.Add(lr)
'** Add view to MailMessage Object
message.AlternateViews.Add(htmlView)
コード内の "objStream"とは何ですか?define文を挿入できますか? – Camacho
はhttp://stackoverflow.com/questions/6261956/how-to-embed-an-image-stream-to-mailmessageを参照してください。データベースからイメージを引き出すわけではありませんが、ローカルファイルパスから来ていないイメージを埋め込む方法を示しています。このコードをコードと組み合わせると、データベースから画像をメモリストリームに取り込むことができます –