Attaching images in the body of a letter in C #

How can I attach an image in a telephoto object. I wrote the code below

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 = "<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); smtpClient.Send(message); 

The code is fine, as I get the message, but the image goes like [X] inside the body, not like the image. How to solve this? The right way?

+6
c #
source share
3 answers
  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); 

link: Send attachment in C # with attached attachments

+12
source share

Use the so-called LinkedResource . You can find instructions here. Successfully done it.

If the tutorial does not help, feel free to ask for clarification. :)

+1
source share
 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 + "<br/><img src=cid:companylogo>"; //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+ " <img src=cid:MyPic>", 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", "<script>alert('Mail sent thank you...');if(alert){ window.location='SendMail.aspx';}</script>"); } //catch (Exception ex) //{ // Console.WriteLine("{0} Exception caught.", ex); //} } } 
0
source share

All Articles