priyanka.bangalore priyanka.bangalore - 1 year ago 78
C# Question

Attaching Image in the body of mail in C#

How can I attach an image in the body content . I have written the below code

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
string UserName = "";
string Password = "my password";
message.To.Add(new System.Net.Mail.MailAddress(""));
message.From = new System.Net.Mail.MailAddress("");
message.Subject = "test subject";
message.Body = "<img src=@'C:\\Sunset.jpg'/>";
message.IsBodyHtml = true;
System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
smtpClient.Host = "hostname";
smtpClient.Port = 25;
smtpClient.Credentials = new System.Net.NetworkCredential(UserName, Password);

The code is fine as I am receiving the message also but the image is coming as [X] inside the body and not as the image.
How to solve this? The path is correct?

Answer Source
    string attachmentPath = Environment.CurrentDirectory + @"\test.png";
    Attachment inline = new Attachment(attachmentPath);
    inline.ContentDisposition.Inline = true;
    inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
    inline.ContentId = contentID;
    inline.ContentType.MediaType = "image/png";
    inline.ContentType.Name = Path.GetFileName(attachmentPath);


reference: Send an Email in C# with Inline attachments

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download