Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

The code will run in a velocity engine and you'll have to make sure your code is well formatted.

Warning

Make sure to write your code (HTML) so that most of the common used email clients can render the HTML. The most erroneous client is Microsoft Outlook (according to our findings), so make sure to test before you publish any custom theme.

 

Below you will find an example (the default details view theme):

...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
        <title>Message Title</title>
    </head>
    <body class="jira" style="color: #333; font-family: Arial, sans-serif; font-size: 12px;">
        <table id="background-table"

...

cellpadding="0"

...

cellspacing="0"

...

width="100%"

...

style="border-collapse:

...

collapse;

...

mso-table-lspace:

...

0pt;

...

mso-table-rspace:

...

0pt;

...

background-color:

...

#f5f5f5;

...

border-collapse:

...

collapse;

...

mso-table-lspace:

...

0pt;

...

mso-table-rspace:

...

0pt">

...


            <!--

...

header

...

here

...

-->

...


            <tr>
                <td style="vertical-align:

...

top;

...

font-size:

...

12px;

...

padding:

...

10px

...

25px

...

0px

...

25px;">

...


                    #if($emailmessage)
                        ${emailmessage}
                    #end
                </td>
            </tr>
            #foreach ($issue in $issues)
            <tr>
                <td style="padding: 0px; border-collapse: collapse; padding: 0px 20px">
                    <table cellspacing="0" cellpadding="0" border="0" style="border-collapse:

...

collapse;

...

mso-table-lspace:

...

0pt;

...

mso-table-rspace:

...

0pt">
                           <tr>
                            <td style="vertical-align: top; padding: 0px 0px 5px 0px;">
                                <div style="padding-top:

...

5px;">

...


                                </div>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td id="email-content-container"

...

style="padding:

...

0px;

...

border-collapse:

...

collapse;

...

padding:

...

0

...

20px">

...


                    <table id="email-content-table"

...

cellspacing="0"

...

cellpadding="0"

...

border="0"

...

width="100%"

...

style="border-collapse:

...

collapse;

...

mso-table-lspace:

...

0pt;

...

mso-table-rspace:

...

0pt;

...

border-spacing:

...

0;

...

border-collapse:

...

separate">

...


                        <tr>
                            <!--

...

there

...

needs

...

to

...

be

...

content

...

in

...

the

...

cell

...

for

...

it

...

to

...

render

...

in

...

some

...

clients

...

-->

...


                            <td class="email-content-rounded-top

...

mobile-expand"

...

style="padding:

...

0px;

...

border-collapse:

...

collapse;

...

color:

...

#fff;

...

padding:

...

0

...

15px

...

0

...

16px;

...

height:

...

15px;

...

background-color:

...

#fff;

...

border-left:

...

1px

...

solid

...

#ccc;

...

border-top:

...

1px

...

solid

...

#ccc;

...

border-right:

...

1px

...

solid

...

#ccc;

...

border-bottom:

...

0;

...

border-top-right-radius:

...

5px;

...

border-top-left-radius:

...

5px;

...

height:

...

10px;

...

line-height:

...

10px;

...

padding:

...

0

...

15px

...

0

...

16px;

...

mso-line-height-rule:

...

exactly">

...


                                &nbsp;
                            </td>
                        </tr>
                         <tr>
                            <td class="email-content-main mobile-expand wrapper-special-margin"

...

style="padding:

...

0px;

...

border-collapse:

...

collapse;

...

border-left:

...

1px

...

solid

...

#ccc;

...

border-right:

...

1px

...

solid

...

#ccc;

...

border-top:

...

0;

...

border-bottom:

...

0;

...

padding:

...

0

...

15px

...

0

...

16px;

...

background-color:

...

#fff;

...

padding-top:

...

10px;

...

padding-bottom:

...

5px">

...


                                <table class="keyvalue-table" style="border-collapse:

...

collapse;

...

mso-table-lspace:

...

0pt;

...

mso-table-rspace:

...

0pt">
                                    #set ($i = 0)
                                    #foreach ($element in $issue.elements)
                                    <tr>
                                        <td style="color: #707070; font: normal 14px/20px Arial, sans-serif; text-align: left; vertical-align: top; padding: 2px 0">
                                            <div style="white-space: nowrap;">
                                            #set ($j = 0)
                                            #foreach($header in $issueheaders)
                                                #if($j == $i) $header #end
                                                #set ($j = $j + 1)
                                            #end
                                            </div>
                                        </td>
                                        <td style="padding: 0px; border-collapse: collapse; font: normal 14px/20px Arial, sans-serif; padding: 2px 0 2px 5px; vertical-align: top">
                                            #if ($element.isEm())<em>#end
                                            #if($element.iconurl)
                                            <div style="white-space:

...

nowrap;">

...


                                            <img
                                                src="${baseurl}${element.iconurl}"
                                                height="16" width="16" border="0"
                                                alt="${element.description}"
                                                title="${element.description}">
                                            #end
                                            #if($issue.parentKey && $element.getFieldKey().equals("summary"))
                                                #if($includeLinks)
                                                    <a href="${baseurl}/browse/${issue.parentKey}" >${issue.parentKey}</a>
                                                #else
                                                    ${issue.parentKey}
                                                #end
                                            #end
                                            #if($element.getFieldKey().equals("issuekey"))
                                                #if($includeLinks)
                                                    <a href="${baseurl}/browse/${issue.key}">${element.name}</a>
                                                #else
                                                    <span style="white-space: nowrap;">${element.name}</span>
                                                #end                                            
                                            #elseif($element.getFieldKey().equals("summary"))
                                                #if($includeLinks)
                                                    <a href="${baseurl}/browse/${issue.key}">${element.name}</a>
                                                #else
                                                    ${element.name}
                                                #end    
                                            #elseif($element.getFieldKey().equals("status"))
                                                <div style="text-align: center; background-color: #FFF; white-space: nowrap; margin: 0; padding: 1px; border-radius: 3px; display: inline-block; line-height: 99%; #if($element.getType().equals("New")) border: 1px solid #E4E8ED; #elseif($element.getType().equals("In Progress")) border: 1px solid #FFE28C; #elseif($element.getType().equals("Complete")) border: 1px solid #B2D8B9; #else border: 1px solid #ccc; #end">
                                                <span style="background-color: #FFF; border-top: 2px solid #FFF; border-bottom: 2px solid #FFF; border-left: 5px solid #FFF; border-right: 5px solid #FFF; border-radius: 3px; font-size: 11px; font-weight: bold; margin: 0; padding: 0; text-decoration: none; text-transform: uppercase; #if($element.getType().equals("New")) color: #4c74c3; #elseif($element.getType().equals("In Progress")) color: #594300; #elseif($element.getType().equals("Complete")) color: #14892C; #else color: #333; #end">
                                                    ${element.name}
                                                </span>
                                                </div>                                        
                                            #else
                                                #if ($element.getInnerElements() && $element.getInnerElements().size() > 0)
                                                    #set($count=1)
                                                    #set($total=$element.getInnerElements().size())
                                                    #foreach($innerelement in $element.innerElements)
                                                        #if($innerelement.iconurl)
                                                        <div style="white-space: nowrap; padding-right: 3px;">
                                                        <img src="${baseurl}${innerelement.iconurl}"
                                                        height="16" width="16" border="0"
                                                        alt="${innerelement.name}"
                                                        title="${innerelement.name}">
                                                        #end
                                                        <span>
                                                        #if($includeLinks && $innerelement.href)
                                                            <a href="${baseurl}${innerelement.href}">${innerelement.name}</a>
                                                        #else
                                                            <span>${innerelement.name}#if($count<$total && !$innerelement.iconurl), #end</span>
                                                        #end                    
                                                        </span>                        
                                                        #if($innerelement.iconurl)
                                                        </div>
                                                        #end
                                                        #set($count=$count+1)
                                                    #end
                                                #else
                                                    <span>${element.name}</span>
                                                #end
                                            #end
                                            #if($element.iconurl)
                                            </div>
                                            #end
                                            #if ($element.isEm())</em>#end
                                        </td>
                                    </tr>
                                    #set ($i = $i + 1)
                                    #end
                                </table>
                            </td>
                        </tr>
                        <!-- there needs to be content in the cell for it to render in some clients -->
                        <tr>
                            <td class="email-content-rounded-bottom mobile-expand" style="padding: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #fff; border-top: 0; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly">
                                &nbsp;
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            #end    
            <tr>
                <td style="vertical-align: top; padding: 10px 0px 5px 0px;">
                    ${emailfooter}
                </td>
            </tr>
        </table>   
    </body>
</html>