Embedding background images in an e-mail

大憨熊 提交于 2019-12-13 12:06:45

问题


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


回答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/




回答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!




回答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!




回答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



来源:https://stackoverflow.com/questions/1770557/embedding-background-images-in-an-e-mail

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!