English 中文(简体)
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 :)

问题回答

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/

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!

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!

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





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签