Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Embedding background images in an e-mail

I'm trying to use an embedded image in an e-mail as the background image, i've got the following code to embed it:

        LinkedResource backgroundLink = new LinkedResource("..\\..\\background.gif");
        backgroundLink.ContentId = "BackgroundImage";
        backgroundLink.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
        htmlView.LinkedResources.Add(backgroundLink);
        m.AlternateViews.Add(htmlView);

Then in the e-mail body i've got the following code to test:

        <table background='cid:BackgroundImage'>
            <tr>
               <td>
                  test
               </td>
            </tr>
        </table>

It doesn't display, but when i put it in as an image like this is is fine:

         <table>
            <tr>
               <td>
                  <img src='cid:BackgroundImage' />
               </td>
            </tr>
        </table>

Does anyone one know why it won't display as a background?

Many thanks in advance :)

like image 536
Chris Avatar asked Nov 20 '09 13:11

Chris


People also ask

Can you do background images in emails?

You can add background images—with no coding required! To try it for yourself, sign up now for free. If you have an existing HTML email template, Campaign Monitor's “Bulletproof Background Images” has the code snippets you need to create email body background images.

How do I put a background image in an email template?

Click Email templates. Click Create Template. Click the Code your own tab, and select Paste in code. In the Code Editor, insert the following code just after the opening <body> tag to add the placeholder background image and color.

Should you embed image in email?

High-quality images can spice up your email campaign. They evoke emotions, provide valuable information, engage your recipients, and encourage them to take action. While you should include images in your emails, there's a catch to it: embedding them can take a lot of work, and we mean, a lot.


4 Answers

Do note that MS Outlook 2007, Live Hotmail etc do not support email content with background images of an sort, be it body, tables etc.

Check this before testing with your email client: http://www.campaignmonitor.com/css/

like image 80
o.k.w Avatar answered Sep 18 '22 19:09

o.k.w


Unfortunately you cannot reliably use background images in e-mails as many popular email clients do no render them.

I've spent many frustrating hours trying to work around this and as yet have not found a nice solution!

like image 25
Adam Pope Avatar answered Sep 19 '22 19:09

Adam Pope


Did you try the following? You can use CSS in your E-Mails - just use the background-image property.

<table style='background-image:url(cid:BackgroundImage)'>
            <tr>
               <td>
                  test
               </td>
            </tr>
        </table>

I have tested this snippet only in Apple Mail!

like image 29
brainfck Avatar answered Sep 17 '22 19:09

brainfck


Use this

string Body = "";

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(Body, null, "text/html");

    LinkedResource imagelink = new LinkedResource(Server.MapPath("~/images/gmail_top.jpg"));

    LinkedResource imagelink1 = new LinkedResource(Server.MapPath("~/images/gmail_btm.jpg"));
    imagelink.ContentId = "imageId";
    imagelink1.ContentId = "imageId1";
    imagelink.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
    htmlView.LinkedResources.Add(imagelink);

    imagelink.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
    htmlView.LinkedResources.Add(imagelink1);

Mail.AlternateViews.Add(htmlView);

After this you can use smtp settings

like image 34
Nirmal Avatar answered Sep 19 '22 19:09

Nirmal