1

Sending a mail along with embedded image & HTML Text using asp.net.

I have tried like this:

 public ActionResult Contact(tblCredential data)
            {
                string emailAddress = data.UserName;
                string password = data.Password;
                if (!string.IsNullOrEmpty(emailAddress))
                {

                    //Send email to consultancy
                    string htmlText = "<img src='R:/MVC@2/EmailWithHtmlBody/EmailWithHtmlBody/images/message.jpg'></img>
<h1>Thank you</h1>";

                    string from = "******@gmail.com";   // Your Mail-id here emailAddress
                    string @touser = emailAddress;  // To Mail-id
                    MailMessage mail = new MailMessage(from, touser);
                    {
                        mail.Subject = emailAddress + " sent a message";
                        mail.Body = htmlText;
                        mail.IsBodyHtml = true;

                        SmtpClient smtp = new SmtpClient { Host = "smtp.gmail.com", EnableSsl = true };
                        NetworkCredential networkCredential = new NetworkCredential(from, "*****");    //Your Password here..
                        smtp.UseDefaultCredentials = false;
                        smtp.Credentials = networkCredential;
                        smtp.Port = 587;
                        smtp.Send(mail);

                    }
                }
                return RedirectToAction("Index");
            }

Email is sent but HTML code is not working. In the mail it is showing HTML tags. Help me.

2 Answers 2

3

In your code you are setting mail.IsBodyHtml = true; first, then mail.IsBodyHtml = false; again. Obviously, this won't work.

Btw: You cannot embed an image using the local path. The recipient will not have your image on his local machine. Embed it using inline embedding (Base64 Encoding) like it is shown here: https://sendgrid.com/blog/embedding-images-emails-facts/

<img alt="My Image" src="data:image/jpeg;base64,/9j/4S/+RXhpZgAATU0AKgAAAAgACAESAAMAENkDZ5u8/61a+X...more encoding" />
Sign up to request clarification or add additional context in comments.

1 Comment

Alternatively, attach the image to the email and refer to it by its content id.
0

Try this template.

It helps to use smtp.port=25

  try 
  { 
           MailMessage msg = new MailMessage ();
           MailAddress fromAdd = new MailAddress("[email protected]");
           msg.[To].Add("[email protected]");
           msg.Subject = "Choose Session Members";
           msg.From = fromAdd;
           msg .IsBodyHtml = true;
           msg.Priority = MailPriority.Normal;
           msg .BodyEncoding = Encoding.Default;
           msg.Body = "<center><table><tr><td><h1>Your Message</h1><br/><br/></td></tr>";
           msg.Body = msg.Body + "</table></center>";
           SmtpClient smtpClient = new SmtpClient ("smtp.yourserver.com", "25");
           smtpClient.EnableSsl = true;
           smtpClient.UseDefaultCredentials = false;
           smtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "password");
           smtpClient .DeliveryMethod = SmtpDeliveryMethod.Network;
           smtpClient.Send(msg);
           smtpClient.Dispose();
        }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.