Embedding background images in an e-mail

14,240

Solution 1

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/

Solution 2

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!

Solution 3

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!

Solution 4

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

Share:
14,240

Related videos on Youtube

Chris
Author by

Chris

Updated on June 04, 2022

Comments

  • Chris
    Chris almost 2 years

    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 :)

  • o.k.w
    o.k.w over 14 years
    Same here! Frustrating indeed.