Anexando imagem no corpo do email em c #

Como posso append uma imagem no conteúdo do corpo. Eu escrevi o código abaixo

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(); string UserName = "xyz@someorg.com"; string Password = "my password"; message.To.Add(new System.Net.Mail.MailAddress("toaddress@toadddress.com")); message.From = new System.Net.Mail.MailAddress("fromaddress@fromaddress.com"); message.Subject = "test subject"; message.Body = ""; 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); smtpClient.Send(message); 

O código é bom porque estou recebendo a mensagem também, mas a imagem está chegando como [X] dentro do corpo e não como a imagem. Como resolver isso? O caminho está correto?

  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); message.Attachments.Add(inline); 

referência: Enviar um email em c # com anexos inline

Use o chamado LinkedResource . Aqui você pode encontrar instruções. Ter feito isso com sucesso.

Se o tutorial não ajudar, não seja tímido e peça esclarecimentos. 🙂

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net; using System.IO; using System.Net.Mime; using System.Net.Mail; namespace ItsTrulyFree { public partial class demo_mail : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { enter code here } protected void btnSubmit_Click(object sender, EventArgs e) { MailMessage Msg = new MailMessage(); // Sender e-mail address. Msg.From = new MailAddress(txtUsername.Text); // Recipient e-mail address. Msg.To.Add(txtTo.Text); Msg.Subject = txtSubject.Text; // File Upload path String FileName = fileUpload1.PostedFile.FileName; string mailbody = txtBody.Text + "
"; //LinkedResource LinkedImage = new LinkedResource(FileName); //HttpContext.Current.Server.MapPath("/UploadedFiles"); LinkedResource LinkedImage = new LinkedResource(Server.MapPath("~//" + FileName), "image/jpg"); LinkedImage.ContentId = "MyPic"; //Added the patch for Thunderbird as suggested by Jorge LinkedImage.ContentType = new ContentType(MediaTypeNames.Image.Jpeg); AlternateView htmlView = AlternateView.CreateAlternateViewFromString(mailbody+ " ", null, "text/html"); htmlView.LinkedResources.Add(LinkedImage); Msg.AlternateViews.Add(htmlView); SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.Credentials = new System.Net.NetworkCredential(txtUsername.Text, txtpwd.Text); smtp.EnableSsl = true; smtp.Send(Msg); Msg = null; Page.RegisterStartupScript("UserMsg", ""); } //catch (Exception ex) //{ // Console.WriteLine("{0} Exception caught.", ex); //} } }