Beginner
Beginner

Reputation: 29573

MailMessage c# - How to make it HTML and add images etc?

string to = "[email protected]";
 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

Upvotes: 23

Views: 29823

Answers (5)

swapneel
swapneel

Reputation: 3061

On the MailMessage set the property IsBodyHtml to true.

string to = "[email protected]";
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);

Upvotes: 48

Zenwalker
Zenwalker

Reputation: 1919

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.

Upvotes: -1

Martijn B
Martijn B

Reputation: 4075

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;

Upvotes: 1

Wouter de Kort
Wouter de Kort

Reputation: 39898

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.

Upvotes: 2

KV Prajapati
KV Prajapati

Reputation: 94653

You have to set mailObj .IsBodyHtml = true;

Upvotes: 8

Related Questions