Stéphane R.
Stéphane R.

Reputation: 1496

Email background image

I would like add background image to mail email. When i test on MailChimp, the preview is good (with inline style and minified).

But if i run test on my mail (Gmail APP and Outlook), i've no background. If i open the mail in browser, my background is show.

I've test with this :

background="http://domaine.com/myimage.jpg"

and

background: url('http://domaine.com/myimage.jpg') !important; // Inline style

No result. Anyone have idea ?

Upvotes: 1

Views: 2357

Answers (4)

Rohit Sharma
Rohit Sharma

Reputation: 605

Although the background images, we apply, may show at maximum no of email clients, but specifically not at the Outlook. So in order to show the email background at Outlook You can use the Code snippet given below, which will make the bg image visible at Outlook.

Just select the Td at which you want the background image, then paste the below code there and update the background image path.

<td background="your_background_image_path_here">
<!--[if gte mso 9]>
    <v:image xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" 
style=" border: 0;display: inline-block; width: 600px; height: 100%;" 
src="your_background_image_path_here" />
    <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" 
style=" border: 0;display: inline-block;position: absolute; width: 600px; 
height: 297px;">
    <v:fill opacity="0%" color="#333333" />
    <v:textbox inset="0,0,0,0">
<![endif]-->
     <table>
         Rest Your Emailer Code Goes Here
     </table>
<!--[if gte mso 9]>
    </v:textbox>
    </v:rect>
<![endif]-->
</td>

Upvotes: 0

Julesezaar
Julesezaar

Reputation: 3396

My code for backgrounds in emails after 1,5 years of blood, sweat and tears:

Important to know is that almost everything in this piece of code is important!. From the DOCTYPE, html tag's xml attributes, conditional comments and css in the head,... Just use this as a starting point for your next email.

Important tip:

Use the attr background="" on a td, not on a table or any other element.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word">
    <head>
      <!--[if (!mso)&(!ie)]>These<!-- --><!--<![endif]-->
      <!--[if (!mso)&(!ie)]>are<!-- --><!--<![endif]-->
      <!--[if (!mso)&(!ie)]>for<!-- --><!--<![endif]-->
      <!--[if (!mso)&(!ie)]>outlook<!-- --><!--<![endif]-->
      <!--[if (!mso)&(!ie)]>live<!-- --><!--<![endif]-->
      <!--[if (!mso)&(!ie)]>that<!-- --><!--<![endif]-->
      <!--[if (!mso)&(!ie)]>removes<!-- --><!--<![endif]-->
      <!--[if (!mso)&(!ie)]>the first<!-- --><!--<![endif]-->
      <!--[if (!mso)&(!ie)]>10 well-formed<!-- --><!--<![endif]-->
      <!--[if (!mso)&(!ie)]>conditional comments<!-- --><!--<![endif]-->
      <!--[if gte mso 9]>
      <xml>
        <o:OfficeDocumentSettings>
          <o:AllowPNG/>
          <o:PixelsPerInch>96</o:PixelsPerInch>
        </o:OfficeDocumentSettings>
      </xml>
      <![endif]-->
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <meta property="og:title" content="mytitle" />
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>mytitle</title>
      <style type="text/css">
        v\:* {
        behavior: url(#default#VML);
        display: inline-block
        }
        o\:* {
        behavior: url(#default#VML);
        display: inline-block
        }
        w\:* {
        behavior: url(#default#VML);
        display: inline-block
        }
        .ExternalClass{
        width:100%;
        }
        table{
        border-collapse:collapse;
        mso-table-lspace:0pt;
        mso-table-rspace:0pt;
        }  
        img{
        -ms-interpolation-mode:bicubic;
        }
        .ReadMsgBody{
        width:100%;
        }
      </style>
    </head>
    <body width="100%" bgcolor="#cccccc" bordercolor="#cccccc" style="margin:0; padding:0;">
      <table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" bgcolor="#cccccc" bordercolor="#cccccc" style="margin:0; padding:0;">
        <tr>
          <td align="center" background="https://i.sstatic.net/LCCB6.jpg" bgcolor="#cccccc" width="100%" height="1000" valign="top" style="background-color:#cccccc;">
            <!--[if gte mso 9]>
            <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="mso-width-percent: 1000;height:1000px;">
              <v:fill type="tile" src="https://i.sstatic.net/LCCB6.jpg" color="#cccccc" />
              <v:textbox inset="0,0,0,0">
                <![endif]-->
                <br /><br />
                <div>
                  <!--[if (mso)|(ie)]>
                  <table align="center" border="0" cellspacing="0" cellpadding="0" width="600" height="100%">
                    <tr>
                      <td align="center" valign="top" width="600" height="100%">
                        <![endif]-->
                        <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width:600px;" height="100%">
                          <tr>
                            <td align="center" height="100%" bgcolor="white">
                             Content of your email goes here, for widths try to use % procent from now if possible. Start again here with a table
                             <br />
                             For outlook you need v:rect code and fixed height set in pixels!<br /><br />

                              If you just want a block inside this 600px wrapper with a background you do it like this:<br>
                              <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width:100%;" height="300">
                                <tr>
                                  <td align="center" height="300" background="http://1-background.com/images/nature/images/wood-background-repeating_1.jpg" bgcolor="#000000" style="color:#fefefe;">
                                     <!--[if gte mso 9]>
                                      <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:600px;height:1000px;">
                                        <v:fill type="tile" src="http://1-background.com/images/nature/images/wood-background-repeating_1.jpg" color="#000000" />
                                        <v:textbox inset="0,0,0,0">
                                          <![endif]-->
                                           Content goes here, for widths try to use % procent from now if possible. (except in v:rect code, use px there) For outlook you need v:rect code and fixed height set in pixels!<br><br>
                                           v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:600px;height:1000px;<br>
                                           <br /><br /><br />
                                          <br>
                                       <!--[if gte mso 9]>
                                      </v:textbox>
                                    </v:rect>
                                    <![endif]-->
                                  </td>
                                </tr>
                              </table>
                              <br>
                            </td>
                          </tr>
                        </table>
                        <!--[if (mso)|(ie)]>
                      </td>
                    </tr>
                  </table>
                  <![endif]-->
                </div>
                <!--[if gte mso 9]>
              </v:textbox>
            </v:rect>
            <![endif]-->
          </td>
        </tr>
      </table>
    </body>
  </html>

Upvotes: 2

Syfer
Syfer

Reputation: 4479

Here is an example of the code that i have been using for quiet sometime now.

    <!--[if (gte mso 9)|(IE)]>
<table width="600" align="center" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td align="left" valign="top" width="600">
<![endif]-->

<table border="0" cellpadding="0" cellspacing="0" width="100%" style="width:100%; max-width:600px;">
                                <tr>
                                  <td align="center" height="400" background="[IMAGE PATH]" bgcolor="#000000" style="height:400px;color:#fefefe; background-image: url('[IMAGE PATH]'); background: url('[IMAGE PATH]');">
                                     <!--[if gte mso 9]>
                                      <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:600px;height:400px;">
                                        <v:fill type="tile" src="[IMAGE PATH]" color="#000000" />
                                        <v:textbox inset="0,0,0,0">
                                          <![endif]-->
                                           Content here<br>

                                       <!--[if gte mso 9]>
                                      </v:textbox>
                                    </v:rect>
                                    <![endif]-->
                                  </td>
                                </tr>
</table>
 <!--[if (gte mso 9)|(IE)]>
        </td>
    </tr>
</table>
<![endif]-->

Above example is of a hybrid code. I have added two more background image paths in the style tag for the TD which should cater for Lotus notes (or older email clients) and for Gmail.

Let me know how you go.

Upvotes: 0

Arashtad
Arashtad

Reputation: 254

CSS background does not work everywhere for email. Use the HTML background property instead. E.g:

<table background="image.jpg"...

Upvotes: 0

Related Questions