Keeping HTML in Django email templates DRY - html

I have created Django html email templates that looks something like this:
<p style="font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.6em; font-weight: normal; margin: 10px 0 10px; padding: 0;">
Hello John
</p>
<p style="font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.6em; font-weight: normal; margin: 10px 0 10px; padding: 0;">
Welcome to the site
</p>
<p style="font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.6em; font-weight: normal; margin: 10px 0 10px; padding: 0;">
More text here...
</p>
Since it's an email template, I must use inline styles and as a result it looks ugly and I have to repeat myself. I'm looking for a way to improve this.
My idea is to create a template tag that will return the style info:
#register.filter
def style(tag):
tags = {
'p': "style="font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.6em; font-weight: normal; margin: 10px 0 10px; padding: 0;""
# Will add more options here
}
return tags[tag]
Then in my template I will use:
<p|style>
Hello John
</p>
<p|style>
Welcome to the site
</p>
<p|style>
More text here...
</p>
I know it is not ideal to put html in python code, but I can't think of a better way?
Any thoughts or better ways to achieve this?

Consider defining a CSS class and assigning this class to all the elements that need to be formatted.
template.css
.MyEmailStyle {
font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 1.6em;
font-weight: normal;
margin: 10px 0 10px;
padding: 0;
}
main.html
<p class="MyEmailStyle">
Hello John
</p>
As you can't include external or internal CSS files in an email template, consider using this library.

Related

What does the text within the curly brackets (and the vertical lines within them) represent?

See below:
<p
style="margin: 0px; text-align: left; color: #666666; line-height: 25px;
font-family: Tahoma, Verdana, Geneva, sans-serif; font-size: 14px; font-weight: bold;">
• {|FeatureFour|}</p>
So the above, is a standard paragraph tag but with the extra text (which seems like some sort of variable);
The code is from a random markup file I came across, I am curius to see what it represents.
&bull gives you to use a bullet mark and the {|FeatureFour|} is the content inside the <p> tag, so {|FeatureFour|} is just a paragraph content
<p
style="margin: 0px; text-align: left; color: #666666; line-height: 25px;
font-family: Tahoma, Verdana, Geneva, sans-serif; font-size: 14px; font-weight: bold;">
• {|FeatureFour|}</p>
<p
style="margin: 0px; text-align: left; color: #666666; line-height: 25px;
font-family: Tahoma, Verdana, Geneva, sans-serif; font-size: 14px; font-weight: bold;">
• {|FeatureFour|}</p>
<p
style="margin: 0px; text-align: left; color: #666666; line-height: 25px;
font-family: Tahoma, Verdana, Geneva, sans-serif; font-size: 14px; font-weight: bold;">
• Hello world!</p>
. You can change these content in the text editor.

Email Template not working properly on Outlook App

I have created a email signature (HTML template). That works perfectly fine on outlook web, Gmail and other clients but fails on Microsoft Outlook (Mail) App. I am using the following code:
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet">
<span style="font-family: Montserrat, Arial, sans-serif; font-weight: 400; font-size: 16px !important; letter-spacing: 0px; color: #3e3e3e; margin-left: 0px;">Charlotte McMahon</span>
<br>
<span style="font-family: Montserrat, Arial, sans-serif; font-weight: 700; font-size: 12px !important; letter-spacing: 0px; text-transform: uppercase; color: #3e3e3e; line-height: 20px; margin-left: 0px;">
Head of Block Management
</span>
<br>
<img src="https://hawkblockmanagement.com/wp-content/uploads/2019/03/Hawk-Logo.png" alt="Hawk Block Management" style="width: 150px; margin: 10px 0 20px 0;"><br>
<span style="font-family: Montserrat, Arial, sans-serif; font-weight: 400; font-size: 10px !important; letter-spacing: 1px; color: #3e3e3e !important; text-transform: uppercase; line-height: 20px; margin-left: 0px;">
<strong>DD:</strong>
020 8016 1178
</span><br/>
<span style="font-family: Montserrat, Arial, sans-serif; font-weight: 400; font-size: 10px !important; letter-spacing: 1px; color: #3e3e3e !important; text-transform: uppercase; line-height: 20px; margin: 0px 10px 0 0;">
<strong>T:</strong>
020 8016 4122
</span>
<br>
<span style="font-family: Montserrat, Arial, sans-serif; font-weight: 400; font-size: 10px !important; letter-spacing: 1px; color: #3e3e3e !important; text-transform: uppercase; line-height: 20px; margin-left: 0px;">
<strong>E:</strong>
cmcmahon#hawkbm.com
</span><br>
<span style="font-family: Montserrat, Arial, sans-serif; font-weight: 400; font-size: 10px !important; letter-spacing: 1px; color: #3e3e3e !important; text-transform: uppercase; line-height: 20px; margin-left: 0px;">
<strong>W:</strong>
<a title="Hawk Block Management" href="https://hawkbm.com" style="color: #3e3e3e !important; text-decoration:none !important; text-decoration:none;" target="_blank">hawkblockmanagement.com</a></span><br>
<div style="padding: 10px 0 0 0;"></div>
<span style="font-family: Montserrat, Arial, sans-serif; font-weight: 400; font-size: 10px !important; letter-spacing: 1px; color: #3e3e3e !important; text-transform: uppercase; line-height: 15px;;">
<a title="Map" href="https://goo.gl/maps/mtfqGUtziZD2" style="color: #3e3e3e !important; text-decoration:none !important; text-decoration:none;" target="_blank">Kirkdale House, Kirkdale Road,
Leytonstone, London E11 1HP</a></span><br>
<img src="https://hawkblockmanagement.com/wp-content/uploads/2019/03/block2.jpg" alt="Hawk Block Management" style="width: 150px; margin: 20px 0 0 0;">
The expected result and result on Outlook, Gmail is
But the result on Outlook App is
Is there any solution to make design consistent on Outlook Mail App too?
Outlook tends to ignore inline style image sizes. Add width="150" which will correct Outlook growing. Outlook will ignore margins placed on the image. Add a padding to the table cell instead.
<img src="https://hawkblockmanagement.com/wp-content/uploads/2019/03/Hawk-Logo.png" width="150" alt="Hawk Block Management" style="width: 150px; height: auto;">
Outlook doesn't support Montserrat. It doesn't work with webfonts, so it's using Arial as it's fallback. This is risky because it might default to Times New Roman, making everything serif.
Good luck.

Html 5 "tel:"not working using eval

I fill the repeater with phone numbers to make calls while using on mobile phones.
But it not working.
That's html;
<p style="font-family: 'Roboto', sans-serif; font-size: 14px; margin-top: 36px; font-weight: 500; color: #8b8383"><%#Eval("Telefon") %></p>
How can i solve this? Thanks..
You need to provide the value in the href attribute too:
<p style="font-family: 'Roboto', sans-serif; font-size: 14px; margin-top: 36px; font-weight: 500; color: #8b8383"><%#Eval("Telefon") %></p>

Spacing & Outlook IOS App signature

I've recently tried using a HTML signature in the Outlook app for IOS and everything displays correctly but for some reason an extra line is inserted between each line of text. Can't seem to work out why, or whether there is issues with code / if I can implement anything to stop the extra line the Outlook app seems necessary.
<p style="font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 12px; color: #1f497d; margin-bottom: 10px;"> </p>
<p style="font-family: Helvectica, Arial, sans-serif; font-size: 12px; line-height: 12px; color: #1f497d; ">Kind regards, </p>
<p>
<br /> <span style="color: #00b0f0; font-family: Helvetica, Arial, sans-serif; font-size: 14px;"><strong>Full Name</strong></span>
<br /> <span style="color: #1f497d; font-family: Helvetica, Arial, sans-serif; font-size: 12px"><strong>Company Name</strong></span></p>
<p><span style="color: #1f497d; font-family: Helvetica, Arial, sans-serif; font-size: 12px">Direct: <span style="color: #e36c0a;">0207 201 <strong>1234</strong></span></span>
<br /><span style="color: #1f497d; font-family: Helvetica, Arial, sans-serif; font-size: 12px"> Email: <a style="color: #1f497d;" href="mailto:email#email.co.uk">email#email.co.uk</a></span>
<br /><span style="color: #1f497d; font-family: Helvetica, Arial, sans-serif; font-size: 12px"> Web: <a style="color: #1f497d;" href="http://www.website.co.uk/">www.website.co.uk</a></span></p>
<p style="font-size: 0px; line-height: 0; font-family: Helvetica, Arial, sans-serif;"> </p>
Any suggestions greatly appreciated, sending me mad!

getting rid of gap in html table

I am getting a gap at the end/beginning of just 2 cells in my email and I can't for the life of me figure out why.
The cell-padding is set to 0
cell-spacing = 0
Here's what I have:
<style type="text/css">
h1,h2,h3,h4,h5,h6,h7 {
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1;}
h1 {
font-size: 20px;
color: #B99350;
line-height: 1;
font-size: 25px;
padding-top: 10px;
font-align: center;
font-weight: normal;
text-align: center;
}
h3{
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1;
color: #B99350;
font-size: 24px;
padding-top: 15px;
padding-bottom: 10px;
padding-left: 15px;
padding-right: 10px;
font-style: normal;
font-weight: normal;
text-align: center;
text-transform: capitalize;
}
h4{
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1;
color: #b99350;
font-size: 22px;
padding-right: 10px;
padding-left: 15px;
font-style: normal;
text-align: left;
font-weight: normal;
}
h5{
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1.3;
font-weight: normal;
color: #FAFAFA;
font-size: 14px;
padding-top: 3px;
color: #FCFCFC;
}
h6{
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1.3;
font-weight: bold;
color: #FFFFFF;
font-size: 14px;
padding-left: 15px;
color: #FFFFFF;
}
h7 {
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
font-size: 16px;
padding-top: 3px;
padding-bottom: 20px;
padding-right: 20px;
padding-left: 15px;
color: #FFFFFF;
line-height: 25px;
}
h8 {
padding-left: 15px;}
h9 {
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
font-size: 10px;
padding-top: 3px;
padding-bottom: 20px;
padding-right: 20px;
padding-left: 15px;
color: #FFFFFF;
line-height: 25px;}
body,td,th {
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
font-size: 16px;
padding-top: 3px;
padding-bottom: 10px;
color: #FFFFFF;
line-height: 20px;
}
li {
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
font-size: 18px;
color: #FFFFFF;
line-height: 1em;
padding-top: 10px;
}
body {
background-color: #FCFCFC;
}
.blue {
color: #B99350;
}
</style>
<table width="600" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" valign="center" ;
>
<tbody>
<tr>
<td colspan="2" bgcolor="#201545" cellspacing="0" cellpadding="0" style="border-collapse: collapse">
<h7>• AA rated State Government of South Australia occupies 76% of the NLA</h7>
<br>
<h7>• $13 million* spent in refurbishments between 2008 and 2016</h7>
<br>
<h7>• 5.3 year WALE and 97% occupancy</h7>
<br>
<h7>• Located in the core of Adelaide’s CBD</h7>
<br>
<h7>• Surplus land area with development potential</h7>
<br>
<h7>• Fully leased net income of $9.3 million*</h7>
<br>
<h7>• Net lettable area of 19,855sqm*</h7>
<br>
<h7>• 4.5-Star NABERS Rating</h7>
</p>
<h7><strong>Please click here to view the Information Memorandum
<h7></strong><br>
<h9>* approx </h9>
<hr valign="top" width="100%" size="4px" color="#9D7F4A" align="left" style="border-collapse: collapse;" >
<h4>FOR SALE VIA EXPRESSIONS OF INTEREST CLOSING 5PM (AEDT) THURSDAY, 20 OCTOBER 2016</h4></td>
<tr><td valign="top" width="232" align="left" bgcolor="#201545" cellspacing="0" style="padding-left: 15px; ";><img src="JLL_Logo_Rev_WEB.png" width="97" height="42" alt="JLL"/>
<h5><strong>Rob Sewell<br>
</strong>+61 407 243 229<br>
rob.sewell#ap.jll.com</h5>
<h5><strong>Jamie Guerra</strong><br>
+61 418 849 780<br>
jamie.guerra#ap.jll.com</h5>
<h5><strong>Roger Klem <br>
</strong>+61 423 919 373<br>
roger.klem#ap.jll.com
<br>
<br>
<strong>INTERNATIONAL</strong><br>
<strong>Stuart McCann<br>
</strong>+65 8522 1031<br>
stuart.mccann#ap.jll.com</h5></td>
<td valign="top" bgcolor="#201545" style="color: #2BACE2; padding-left: 15px;"><img src="KnightFrank_LR.png" alt="KnightFrank" width="108" height="54"/>
<h5><strong>Guy Bennett<br>
</strong>+61 418 808 548<br>
< guy.bennett#au.knightfrank.com</h5>
<h5><strong>Lukas Weeks</strong><br>
+61 434 957 537<br>
lukas.weeks#au.knightfrank.com</h5>
<h5><strong>James Parry</strong><br>
+ 61 408 553 000<br>
james.parry#au.knightfrank.com
<br>
<br>
<strong>INTERNATIONAL</strong><br>
<strong>Neil Brookes<br>
</strong>+65 8309 4985<br>
neil.brookes#asia.knightfrank.com</h5></td>
</tbody>
</table></tr>
</body>
</html>
There are 2 columns/cells in this section and both are sitting with a massive gap between the (missing) logos and the text above it and I can't figure out how to close it...
Please help!
Thanks
P.S. the top code is not to the end. But I wasn't allowed to show the rest as it was "too much HTML" not enough question...
I HAVE THE ANSWER -
at the very end the
is after & and should be before them.
Simple as that. Swapped it in front and all fixed!
First of all, this is NOT how you use tables!
W3Schools Tables Link
Secondly, the space after each email field is the margin for the h5 tag. See that all your data is wrapped in an h5 tag? Those provide a top-bottom margin. Try removing it to see the effects. You cant call these "cells" because you are not wrapping the individual items in td tags.
Also, dont forget to close your tables.