Question

string to = "email@hotmail.co.uk";
 string body = "Test";
 SmtpClient SMTPServer = new SmtpClient("127.0.0.1");
 MailMessage mailObj = new MailMessage(urEmail, to, subject, body);
 SMTPServer.Send(mailObj);

This is how i am currently sending a test email. How do i make this html and be able to make the email sent out look better by adding images etc?

Thanks

Was it helpful?

Solution

On the MailMessage set the property IsBodyHtml to true.

string to = "email@hotmail.co.uk";
string body = "Test";
SmtpClient SMTPServer = new SmtpClient("127.0.0.1");
MailMessage mailObj = new MailMessage(urEmail, to, subject, body);

mailObj.IsBodyHtml = true; // This line

SMTPServer.Send(mailObj);

OTHER TIPS

You have to set mailObj .IsBodyHtml = true;

you can use the following idea to take an ASPX page and render it to a string:

StringWriter writer = new StringWriter();
Server.Execute("Login.aspx", writer);
string html = writer.ToString();

If you then set the MailMessage.IsBodyHtml to true you can send an HTML message. If you want to use images and other stuff make sure that the receiver of the email can access those images.

There are two ways of doing this:

  1. Embed the images inside your mail. (see this question)

  2. Link to the images through your src attribute of the image tag inside your HTML mail. This needs you to host the image files somewhere on a webserver which the recipients can access.

In both cases you will need to send the mail with a html body.

mailObj.IsBodyHtml = true;

For your question about adding Image to your email, if your asking for embedding then you can use Anchor tags of HTML or else attach the image file to the mail by using mailObj.Attachments.Add() method i guess.

But the best way is to send the images as attachments because some firewalls just blocks the embedded images but allows attachments. So that way your better safer in delivering the content, though its not a perfect way.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top