Attaching Image in the body of mail in C#

后端 未结 3 1653
一向
一向 2020-12-01 19:13

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         


        
相关标签:
3条回答
  • 2020-12-01 19:45
        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);
    

    reference: Send an Email in C# with Inline attachments

    0 讨论(0)
  • 2020-12-01 20:03

    Use so called LinkedResource. Here you can find how-to. Have done that successfully.

    If tutorial does not help, don't be shy and ask for clarification. :)

    0 讨论(0)
  • 2020-12-01 20:06
    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 讨论(0)
提交回复
热议问题