Class LinkedResource

LinkedResource class

Represents an embedded resource in a message.

public class LinkedResource : AttachmentBase

Constructors

NameDescription
LinkedResource(Stream)Initializes a new instance of the LinkedResource class.
LinkedResource(string)Initializes a new instance of the LinkedResource class.
LinkedResource(Stream, ContentType)Initializes a new instance of the LinkedResource class.
LinkedResource(Stream, string)Initializes a new instance of the LinkedResource class.
LinkedResource(string, ContentType)Initializes a new instance of the LinkedResource class.
LinkedResource(string, string)Initializes a new instance of the LinkedResource class.

Properties

NameDescription
ContentDisposition { get; }Gets Content-Disposition header
ContentId { get; set; }Gets or sets the content id.
ContentLink { get; set; }Gets or sets a URI that the resource must match.
ContentStream { get; set; }Gets or sets the content stream.
ContentType { get; set; }Gets or sets the type of the content.
virtual Headers { get; }Gets headers collection of attachment.
TransferEncoding { get; set; }Gets or sets the transfer encoding.

Methods

NameDescription
static CreateLinkedResourceFromString(string)Creates the linked resource from string.
static CreateLinkedResourceFromString(string, ContentType)Creates the linked resource from string.
static CreateLinkedResourceFromString(string, Encoding, string)Creates the linked resource from string.
Dispose()Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
virtual Save(Stream)Saves the specified stream.
virtual Save(string)Saves the specified file name.

Examples

The following example shows how to embed objects using LinkedResource into an Email.

[C#]

var eml = new MailMessage
{
	From = "AndrewIrwin@from.com",
	To = "SusanMarc@to.com",
	Subject = "This is an email"
};

// Create the plain text part It is viewable by those clients that don't support HTML
var plainView =
	AlternateView.CreateAlternateViewFromString("This is my plain text content", null, "text/plain");

// Create the HTML part.To embed images, we need to use the prefix 'cid' in the img src value.
// The cid value will map to the Content-Id of a Linked resource. Thus <img src='cid:barcode'>
// will map to a LinkedResource with a ContentId of 'barcode'.
var htmlView =
	AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:barcode>", null,
		"text/html");

// Create the LinkedResource (embedded image) and Add the LinkedResource to the appropriate view
var barcode = new LinkedResource("1.jpg", MediaTypeNames.Image.Jpeg)
{
	ContentId = "barcode"
};

eml.LinkedResources.Add(barcode);
eml.AlternateViews.Add(plainView);
eml.AlternateViews.Add(htmlView);

eml.Save("EmbeddedImage_out.msg", SaveOptions.DefaultMsgUnicode);

[Visual Basic]

Dim eml = New MailMessage With {
.From = "AndrewIrwin@from.com",
.[To] = "SusanMarc@to.com",
.Subject = "This is an email"
}

' Create the plain text part It is viewable by those clients that don't support HTML
Dim plainView = AlternateView.CreateAlternateViewFromString("This is my plain text content", Nothing, "text/plain")

' Create the HTML part.To embed images, we need to use the prefix 'cid' in the img src value.
' The cid value will map to the Content-Id of a Linked resource. Thus <img src='cid:barcode'>
' will map to a LinkedResource with a ContentId of 'barcode'.
Dim htmlView = AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:barcode>", Nothing, "text/html")

' Create the LinkedResource (embedded image) and Add the LinkedResource to the appropriate view
Dim barcode = New LinkedResource("1.jpg", MediaTypeNames.Image.Jpeg) With {
  .ContentId = "barcode"
		}

eml.LinkedResources.Add(barcode)
eml.AlternateViews.Add(plainView)
eml.AlternateViews.Add(htmlView)

eml.Save("EmbeddedImage_out.msg", SaveOptions.DefaultMsgUnicode)

See Also