Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mass mailing messages sent without proper <body> tag #10954

Closed
yajo opened this issue Feb 16, 2016 · 43 comments
Closed

Mass mailing messages sent without proper <body> tag #10954

yajo opened this issue Feb 16, 2016 · 43 comments
Labels

Comments

@yajo
Copy link
Contributor

yajo commented Feb 16, 2016

While writing module OCA/social#44 we found a bug in Odoo.

If you want to write responsive email snippets, you need to add media queries, and for that you need to write <style> tags, that need to be inside the <head> tag.

Right now, Odoo does not send any <html>, <head> or <body> tags, so there is no way to write that.

Also you maybe need to write special code for Outlook's ugly HTML renderer, for what you need things like:

<!--[if gte mso]>
    <style type="text/css">
    .fluid { width: 600px !important; }
    </style>
<![endif]-->

Which are quite hard to inject because either Odoo strips the comment or CKEditor does. But this would not be so important if we had a <head> where to insert mail templates as said above.

@rafaelbn @dgzurita

@pedrobaeza
Copy link
Collaborator

👍

If not, you can always write a module that encapsulates the output in this tag, isn't it?

@rafaelbn
Copy link
Contributor

👍

1 similar comment
@elicoidal
Copy link

👍

@yajo
Copy link
Contributor Author

yajo commented Feb 17, 2016

@pedrobaeza You'd loose the WYSIWYG feature.

@pedrobaeza
Copy link
Collaborator

Are you sure? I think they are both compatible.

@yajo
Copy link
Contributor Author

yajo commented Feb 17, 2016

Let's suppose this is your email's body:

<p class="red">Hi, I'm an email</b>

Odoo would send it as you see it, and the website-based email designer runs in a whole page, so what I guess it's doing is to extract the editable part from the page and send it.

Now we need this body:

<html>
 <head>
  <style>.red{background-color:red}</style>
 </head>
 <body>
  <p class="red">Hi, I'm an email</b>
 </body>
</html>

If I inject the surroundings at send time, you would see a normal <p> in the editor, and a red one in the email. That's not WYSIWYG.

To get a full-html WYSIWYG editor, It should be run inside an iframe, where the full HTML is found and correctly rendered, and Odoo should send all that iframe's contents in the email (not only what's inside the editable part). You design emails in an iframe from Odoo 9 onwards, which gives you a chance to do this, but in v8 you do it in a full page, and that makes it much harder to achieve AFAIK.

But even in v9 (and master, I checked), you do not get the full HTML structure, which is why this bug affects all versions, although I doubt it can be fixed in v8.

@pedrobaeza
Copy link
Collaborator

And why don't you inject it before showing it in the editor?

@yajo
Copy link
Contributor Author

yajo commented Feb 17, 2016

Anyway it would get stripped when saving.

@rafaelbn
Copy link
Contributor

rafaelbn commented Sep 6, 2016

This must be fixed in MASTER, if not customer need Mailchimp or similar as external tool with their Mass Mailing Designs. How Odoo Enterprise works is not enough.

@nhomar do you have this problem with your customers? cc @lasley cc @Yenthe666

@Yenthe666
Copy link
Collaborator

@odony and @mart-e give this bug some love please. This should land in master before V10 is locked.

@yajo
Copy link
Contributor Author

yajo commented Sep 27, 2016

FTR, There are already projects that have [almost] full mail client compliance, such as mailgun/transactional-email-templates, nice for the pros, but impossible to integrate as long as Odoo emails have no proper <html>, <head> and <body> tags. Nothing can be 100% fixed until then.

@lukebranch
Copy link

lukebranch commented Sep 27, 2016

Apologies in advance if this is off topic for this thread. I have noticed there also seems to be no way to add the preview/pre-header text into the mass mailing templates easily as an end user. What I mean by preview text can be found here:

https://www.campaignmonitor.com/blog/email-marketing/2011/12/a-practical-guide-to-email-preheaders/

It is simply the first div after the opening <body> tag in the email. I think perhaps it would be useful for the end user to be able to edit this and add their own preview text.

@lasley
Copy link
Contributor

lasley commented Sep 27, 2016

Oops I missed this. We do experience this issue on our end as well & had to do some ghetto monkey patching to inject the proper tags. We are using Foundation templates if it matters. Our use case is exactly what @yajo pointed out in the first comment - client specific styling.

AFAIK the second example for color styling goes against best practices of email design. All non-application specific styles should be inline in order to guarantee compliance with unwieldy web clients, like Gmail, which does not process within the <head> tags (last I checked).

@mart-e
Copy link
Contributor

mart-e commented Sep 28, 2016

Hello,

Aren't the <style> stripped in clients like gmail? When I check in my emails, all the style is inline, not in the head (which is often not present in my email samples).
In v10, you can use inline style on the body_html field.

On an html field, you now have several level of sanitization

class Html(_String):
    type = 'html'
    column_type = ('text', 'text')
    _slots = {
        'sanitize': True,               # whether value must be sanitized
        'sanitize_tags': True,          # whether to sanitize tags (only a white list of attributes is accepted)
        'sanitize_attributes': True,    # whether to sanitize attributes (only a white list of attributes is accepted)
        'sanitize_style': False,        # whether to sanitize style attributes
        'strip_style': False,           # whether to strip style attributes (removed and therefore not sanitized)
        'strip_classes': False,         # whether to strip classes attributes
    }

The body field on an email is. in v10, at sanitize_style=True, strip_classes=True so you should be able to use inline style.

Styling email is a tricky thing and we don't tend to allow much as it usually won't work in many email clients anyway. Keep it simple.

@yajo
Copy link
Contributor Author

yajo commented Sep 28, 2016

Mostly, html, body, head, & style tags tend to be removed in web clients, but not in desktop/mobile ones.

To have responsive emails, mostly for smartphones, you need media queries, which are supported only on a few email clients.

Honestly, making sensible emails that look good everywhere is a pain. I recommend you to read Mailgun's post about that. That's why we are considering using a well-proven framework in an additional addon, such as the one from Mailgun or the one @lasley said, the same way you use Bootstrap for website templates.

But this limitation of not having html, head, body & style tags simply makes that impossible.

So, if I'm not wrong, what you mean @mart-e by your comment is that we could define something like this...

class MassMailing(models.Model):
    _inherit = "mail.mass_mailing"
    body_html = fields.Html(sanitize_tags=["script", "iframe", "frame", "object"])

... to make Odoo not remove the html, head, style & body tags?

Also, I understand this would be for future v10, but any solution for v9?

Thank you.

@mart-e
Copy link
Contributor

mart-e commented Sep 28, 2016

No, that's not that. The html & body will always be removed, it's part of the global sanitisation of html content and the only way to prevent that is to override the field to put sanitize=False on it.
With sanitize_style, we will keep only the following attributes

    _style_whitelist = [
        'font-size', 'font-family', 'background-color', 'color', 'text-align',
        'padding', 'padding-top', 'padding-left', 'padding-bottom', 'padding-right',
        'margin', 'margin-top', 'margin-left', 'margin-bottom', 'margin-right'
        # box model
        'border', 'border-color', 'border-radius', 'height', 'margin', 'padding', 'width', 'max-width', 'min-width',
        # tables
        'border-collapse', 'border-spacing', 'caption-side', 'empty-cells', 'table-layout']

If you want to have more style (e.g. blinking text), you need to change the attribute to sanitize_style=False.

Also we will definitely not change the behaviour in v9

@yajo
Copy link
Contributor Author

yajo commented Sep 28, 2016

So still no way of adding those 4 tags to the whitelist and let Odoo do the rest of the magic?

A way to change the whitelist or blacklist of elements/attributes would be great. Or simply a boolean for this special case, something like sanitize_structure=False to save them.

@mart-e
Copy link
Contributor

mart-e commented Sep 29, 2016

If you want to customise this, you can always alter the content of sanitisation constants to add or remove tags & attributes but we do not wish to modify this in standard.

I have reported the issue that we can't add media queries but it's not a priority at the moment

@yajo
Copy link
Contributor Author

yajo commented Sep 29, 2016

Hmm yes, I already saw that. The problem is that currently you cannot safely modify that.

I mean that those are constants in a openerp.tools submodule. If you modify the constant, it affects all databases installed in a given instance. I would be glad to develop an addon that modifies the sanitisation behavior, if it is the only way, but polishing every database when a single one installs it is not acceptable.

Do you have a solution for that? I might be missing something...

@lukebranch
Copy link

@treviser
Copy link

@yajo Did you achieve any progress on this? Could it be possible to put the sanitisation constants in a xml data file, which then could be adapted per database?

@yajo
Copy link
Contributor Author

yajo commented Feb 21, 2017

No progress so far, sorry

@rafaelbn
Copy link
Contributor

Hi @mart-e @fpodoo we notify this 1 year and 7 months ago. Is this going yo be fixed in v11?

This is not a problem of customer expectation this is a problem of customer experience.

Already, again, OCA giving a workarround solution in OCA/social#192

Why a Odoo customer cannot use?:

If we sell you can change mailchimp or similar with Odoo you have to add this.

Please take care on this

Thanks

@yajo
Copy link
Contributor Author

yajo commented Sep 27, 2017

One funny thing is that Odoo decided it is better to have a script that converts all your css styles into inline styles instead of putting all css styles into inline <style> tags inside a proper <head> (which would have been much easier to do).

Besides the maintainability problem of such approach, there's also the problem of inline styles being incompatible with media queries, so until this bug is fixed, Odoo is doomed to send no responsive mails, which in turns forces Odoo to fall behind other mass mailing systems and answers your question @rafaelbn.

@rafaelbn
Copy link
Contributor

rafaelbn commented Oct 8, 2017

Let's try again after Odoo Experience... 😄 Please @odony could you solve this for next year please? 🙏

@Yenthe666
Copy link
Collaborator

Oh man, too bad that didn't make it.. 😢

@lasley
Copy link
Contributor

lasley commented Oct 9, 2017

Any idea how much effort would be required to just make this a module? I don't think we should hold our breath on this, and I kind of want it in v10

@yajo
Copy link
Contributor Author

yajo commented Oct 10, 2017

The problem is that this stripping does not happen in an addon, but in a tool. Possibly here or around it:

odoo/odoo/tools/mail.py

Lines 28 to 29 in cd48a80

tags_to_kill = ["script", "head", "meta", "title", "link", "style", "frame", "iframe", "base", "object", "embed"]
tags_to_remove = ['html', 'body']

So I imagine fixing this in an addon without monkey patching would be quite hard.

Besides, once fixed, you'd need to create an addon that uses a mail template framework (see #10954 (comment)) to actually make the addon useful, and make sure there are no conflicts with current behavior (see #10954 (comment)).

@simahawk
Copy link
Contributor

A "light patch" could be to make those tags params overridable via server cfg (and w/ server_environment then). This could be a 1st step w/out hacking too much the existing machinery.

The 2nd step could be: propose to move those tools calls to an abstract model to ease override. I'm not sure we have an env in every possible hook tho.

@yajo
Copy link
Contributor Author

yajo commented Oct 10, 2017

Hmm yeah, neat idea. The 1st option should be just enough I think (in case @odoo still wants to have no responsive emails, at least the community shouldn't be locked just for that reason).

@rafaelbn
Copy link
Contributor

Well, I have to insist because mathematical logic.

Odoo have presented this year in How to Achieve Higher Revenue and Faster Growth with Marketing Automation Campaigns its new marketing automation app by Geoffrey Bressan, Demand Generation Manager - Odoo

Geoffrey ( maybe @gde-odoo ) graduated in corporate communication and marketing from the Université Libre de Bruxelles in 2009. He joined Odoo in 2014 after several working experiences in Belgium, France and Canada. Working closely with the sales teams in Europe, USA and Hong Kong, he ensures proper and timely handoff of qualified leads through marketing campaigns and manages the whole lead assignation process using Odoo CRM.

What do you think about this issue Geoffrey? You are an expert.

In my logic if Odoo has developed a new Super-Tool for marketing automation it means that in v12 the will want to be able to send pretty responsive emails ! Isn't it @fpodoo ?

☕️ Thanks!

@rafaelbn
Copy link
Contributor

Hello, dear all!

Please any plan for this? Any news?

Really @mart-e this is a great headache for customers and for us giving them support. This is a must have in a Mass Mailing tools.

All customers will really appreciate if you could introduce this in v12. And furthermore you can after this say that Odoo could replace Mailchimp (now not, you should say this...)

Thanks in advance for any news

@Yenthe666 do you know who is responsible of v12 improvements in mass mailings? (Thanks!)

Regards

@Yenthe666
Copy link
Collaborator

Hi @rafaelbn,

I'm not sure who is responsible for mass mailing at the moment, @mart-e should be able to answer that for you though.
I completely agree that we should be able to send fully responsive emails and that the Odoo mass mailing module is not as far/good as Mailchimp. In my opinion this should be added/improved.
P.S: Personal opinion, not from Odoo.

Regards,
Yenthe

@rafaelbn
Copy link
Contributor

rafaelbn commented Mar 6, 2018

Hi all,

This problem has been reported 2 years ago! Is still not attended? 😞

v8, v9, v10, v11, really Odoo is not going to attend this ?

  1. Is really important to give customers a minimal mass mailing tool
  2. Odoo cannot replace Mailgun / Mailchimp without this

Please @mart-e could any one investigate with @yajo 's or @chienandalu support to solve this in v12? (2 years waiting for this basic functionality)

Check a Mailchimp email code with a <head> and <style>. This is a must have please! 🙏

Code example
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
    <head>
    	<!-- NAME: INVITATION BY TERRIS KREMER -->
        <!--[if gte mso 15]>
		<xml>
			<o:OfficeDocumentSettings>
			<o:AllowPNG/>
			<o:PixelsPerInch>96</o:PixelsPerInch>
			</o:OfficeDocumentSettings>
		</xml>
		<![endif]-->
		<meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
		<title>*|MC:SUBJECT|*</title>
        
    <style type="text/css">
		p{
			margin:10px 0;
			padding:0;
		}
		table{
			border-collapse:collapse;
		}
		h1,h2,h3,h4,h5,h6{
			display:block;
			margin:0;
			padding:0;
		}
		img,a img{
			border:0;
			height:auto;
			outline:none;
			text-decoration:none;
		}
		body,#bodyTable,#bodyCell{
			height:100%;
			margin:0;
			padding:0;
			width:100%;
		}
		.mcnPreviewText{
			display:none !important;
		}
		#outlook a{
			padding:0;
		}
		img{
			-ms-interpolation-mode:bicubic;
		}
		table{
			mso-table-lspace:0pt;
			mso-table-rspace:0pt;
		}
		.ReadMsgBody{
			width:100%;
		}
		.ExternalClass{
			width:100%;
		}
		p,a,li,td,blockquote{
			mso-line-height-rule:exactly;
		}
		a[href^=tel],a[href^=sms]{
			color:inherit;
			cursor:default;
			text-decoration:none;
		}
		p,a,li,td,body,table,blockquote{
			-ms-text-size-adjust:100%;
			-webkit-text-size-adjust:100%;
		}
		.ExternalClass,.ExternalClass p,.ExternalClass td,.ExternalClass div,.ExternalClass span,.ExternalClass font{
			line-height:100%;
		}
		a[x-apple-data-detectors]{
			color:inherit !important;
			text-decoration:none !important;
			font-size:inherit !important;
			font-family:inherit !important;
			font-weight:inherit !important;
			line-height:inherit !important;
		}
		a.mcnButton{
			display:block;
		}
		.mcnImage,.mcnRetinaImage{
			vertical-align:bottom;
		}
		.mcnTextContent{
			word-break:break-word;
		}
		.mcnTextContent img{
			height:auto !important;
		}
		.mcnDividerBlock{
			table-layout:fixed !important;
		}
		.borderBar{
			background-image:url('https://gallery.mailchimp.com/27aac8a65e64c994c4416d6b8/images/diagborder.png');
			background-position:top left;
			background-repeat:repeat;
			height:5px !important;
		}
		body,#bodyTable{
			background-color:#DEE0E2;
		}
		#bodyCell{
			border-top:0;
		}
		#templateContainer{
			border:0;
		}
		h1{
			color:#43404D !important;
			font-family:Georgia;
			font-size:32px;
			font-style:normal;
			font-weight:normal;
			line-height:125%;
			letter-spacing:-1px;
			text-align:left;
		}
		h2{
			color:#43404D !important;
			font-family:Georgia;
			font-size:26px;
			font-style:normal;
			font-weight:normal;
			line-height:125%;
			letter-spacing:-.75px;
			text-align:left;
		}
		h3{
			color:#ED5E29 !important;
			font-family:Georgia;
			font-size:18px;
			font-style:italic;
			font-weight:normal;
			line-height:125%;
			letter-spacing:-.5px;
			text-align:left;
		}
		h4{
			color:#43404D !important;
			font-family:Georgia;
			font-size:12px;
			font-style:normal;
			font-weight:normal;
			line-height:125%;
			letter-spacing:normal;
			text-align:left;
		}
		#templatePreheader{
			background-color:#DEE0E2;
			border-top:0;
			border-bottom:0;
		}
		.preheaderContainer .mcnTextContent,.preheaderContainer .mcnTextContent p{
			color:#43404D;
			font-family:Georgia;
			font-size:11px;
			line-height:125%;
			text-align:left;
		}
		.preheaderContainer .mcnTextContent a{
			color:#43404D;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateHeader{
			background-color:#F8F8F8;
			border-top:10px solid #A6BFC9;
			border-bottom:0;
		}
		.headerContainer .mcnTextContent,.headerContainer .mcnTextContent p{
			color:#43404D;
			font-family:Georgia;
			font-size:15px;
			line-height:150%;
			text-align:left;
		}
		.headerContainer .mcnTextContent a{
			color:#ED5E29;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateUpperBody,.borderBar{
			background-color:#F8F8F8;
		}
		#templateUpperBody{
			border-top:0;
			border-bottom:0;
		}
		.upperBodyContainer .mcnTextContent,.upperBodyContainer .mcnTextContent p{
			color:#43404D;
			font-family:Georgia;
			font-size:15px;
			line-height:150%;
			text-align:left;
		}
		.upperBodyContainer .mcnTextContent a{
			color:#ED5E29;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateLowerBody{
			background-color:#F8F8F8;
			border-top:0;
			border-bottom:0;
		}
		.lowerBodyContainer .mcnTextContent,.lowerBodyContainer .mcnTextContent p{
			color:#43404D;
			font-family:Georgia;
			font-size:15px;
			line-height:150%;
			text-align:left;
		}
		.lowerBodyContainer .mcnTextContent a{
			color:#ED5E29;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateColumns{
			background-color:#F8F8F8;
			border-top:0;
			border-bottom:0;
		}
		.leftColumnContainer .mcnTextContent,.leftColumnContainer .mcnTextContent p{
			color:#43404D;
			font-family:Georgia;
			font-size:15px;
			line-height:150%;
			text-align:left;
		}
		.leftColumnContainer .mcnTextContent a{
			color:#ED5E29;
			font-weight:normal;
			text-decoration:underline;
		}
		.rightColumnContainer .mcnTextContent,.rightColumnContainer .mcnTextContent p{
			color:#43404D;
			font-family:Georgia;
			font-size:15px;
			line-height:150%;
			text-align:left;
		}
		.rightColumnContainer .mcnTextContent a{
			color:#ED5E29;
			font-weight:normal;
			text-decoration:underline;
		}
		#templateFooter{
			background-color:#F8F8F8;
			border-top:0;
			border-bottom:10px solid #A6BFC9;
		}
		.footerContainer .mcnTextContent,.footerContainer .mcnTextContent p{
			color:#43404D;
			font-family:Georgia;
			font-size:11px;
			line-height:125%;
			text-align:left;
		}
		.footerContainer .mcnTextContent a{
			color:#43404D;
			font-weight:normal;
			text-decoration:underline;
		}
	@media only screen and (max-width: 480px){
		body,table,td,p,a,li,blockquote{
			-webkit-text-size-adjust:none !important;
		}

}	@media only screen and (max-width: 480px){
		body{
			width:100% !important;
			min-width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		#templateContainer,#templatePreheader,#templateHeader,#templateColumns,#templateUpperBody,#templateLowerBody,#templateFooter{
			max-width:600px !important;
			width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.columnsContainer{
			display:block!important;
			max-width:600px !important;
			width:100%!important;
		}

}	@media only screen and (max-width: 480px){
		.mcnRetinaImage{
			max-width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImage{
			height:auto !important;
			width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnCartContainer,.mcnCaptionTopContent,.mcnRecContentContainer,.mcnCaptionBottomContent,.mcnTextContentContainer,.mcnBoxedTextContentContainer,.mcnImageGroupContentContainer,.mcnCaptionLeftTextContentContainer,.mcnCaptionRightTextContentContainer,.mcnCaptionLeftImageContentContainer,.mcnCaptionRightImageContentContainer,.mcnImageCardLeftTextContentContainer,.mcnImageCardRightTextContentContainer,.mcnImageCardLeftImageContentContainer,.mcnImageCardRightImageContentContainer{
			max-width:100% !important;
			width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnBoxedTextContentContainer{
			min-width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageGroupContent{
			padding:9px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnCaptionLeftContentOuter .mcnTextContent,.mcnCaptionRightContentOuter .mcnTextContent{
			padding-top:9px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageCardTopImageContent,.mcnCaptionBottomContent:last-child .mcnCaptionBottomImageContent,.mcnCaptionBlockInner .mcnCaptionTopContent:last-child .mcnTextContent{
			padding-top:18px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageCardBottomImageContent{
			padding-bottom:9px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageGroupBlockInner{
			padding-top:0 !important;
			padding-bottom:0 !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageGroupBlockOuter{
			padding-top:9px !important;
			padding-bottom:9px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnTextContent,.mcnBoxedTextContentColumn{
			padding-right:18px !important;
			padding-left:18px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnImageCardLeftImageContent,.mcnImageCardRightImageContent{
			padding-right:18px !important;
			padding-bottom:0 !important;
			padding-left:18px !important;
		}

}	@media only screen and (max-width: 480px){
		.mcpreview-image-uploader{
			display:none !important;
			width:100% !important;
		}

}	@media only screen and (max-width: 480px){
		h1{
			font-size:24px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		h2{
			font-size:20px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		h3{
			font-size:18px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		h4{
			font-size:16px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		.mcnBoxedTextContentContainer .mcnTextContent,.mcnBoxedTextContentContainer .mcnTextContent p{
			font-size:18px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		#templatePreheader{
			display:block !important;
		}

}	@media only screen and (max-width: 480px){
		.preheaderContainer .mcnTextContent,.preheaderContainer .mcnTextContent p{
			font-size:14px !important;
			line-height:115% !important;
		}

}	@media only screen and (max-width: 480px){
		.headerContainer .mcnTextContent,.headerContainer .mcnTextContent p{
			font-size:18px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		.bodyContainer .mcnTextContent,.bodyContainer .mcnTextContent p{
			font-size:18px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		.leftColumnContainer .mcnTextContent,.leftColumnContainer .mcnTextContent p{
			font-size:18px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		.rightColumnContainer .mcnTextContent,.rightColumnContainer .mcnTextContent p{
			font-size:18px !important;
			line-height:125% !important;
		}

}	@media only screen and (max-width: 480px){
		.footerContainer .mcnTextContent,.footerContainer .mcnTextContent p{
			font-size:14px !important;
			line-height:115% !important;
		}

}</style></head>
    <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" style="height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #DEE0E2;">
        <!---->
        <center>
            <table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;background-color: #DEE0E2;">
                <tr>
                    <td align="center" valign="top" id="bodyCell" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;height: 100%;margin: 0;padding: 0;width: 100%;border-top: 0;">
                        <!-- BEGIN TEMPLATE // -->
                        <table border="0" cellpadding="0" cellspacing="0" width="600" id="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border: 0;">
                            <tr>
                                <td align="center" valign="top" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                    <!-- BEGIN PREHEADER // -->
                                    <table border="0" cellpadding="0" cellspacing="0" width="600" id="templatePreheader" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #DEE0E2;border-top: 0;border-bottom: 0;">
                                        <tr>
                                        	<td valign="top" class="preheaderContainer" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><table class="mcnTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" cellspacing="0" cellpadding="0">
    <tbody class="mcnTextBlockOuter">
        <tr>
            <td class="mcnTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" valign="top">
              	<!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;">
				<tr>
				<![endif]-->
			    
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnTextContentContainer" width="100%" border="0" align="left" cellspacing="0" cellpadding="0">
                    <tbody><tr>
                        
                        <td class="mcnTextContent" style="padding: 0px 18px 9px;text-align: center;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;color: #43404D;font-family: Georgia;font-size: 11px;line-height: 125%;" valign="top">
                        
                            <a href="*|ARCHIVE|*" target="_blank" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #43404D;font-weight: normal;text-decoration: underline;">View this email in your browser</a>
                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->
                
				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!-- // END PREHEADER -->
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                    <!-- BEGIN HEADER // -->
                                    <table border="0" cellpadding="0" cellspacing="0" width="600" id="templateHeader" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #F8F8F8;border-top: 10px solid #A6BFC9;border-bottom: 0;">
                                        <tr>
                                            <td valign="top" class="headerContainer" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><table class="mcnTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" cellspacing="0" cellpadding="0">
    <tbody class="mcnTextBlockOuter">
        <tr>
            <td class="mcnTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" valign="top">
              	<!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;">
				<tr>
				<![endif]-->
			    
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnTextContentContainer" width="100%" border="0" align="left" cellspacing="0" cellpadding="0">
                    <tbody><tr>
                        
                        <td class="mcnTextContent" style="padding-top: 0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;color: #43404D;font-family: Georgia;font-size: 15px;line-height: 150%;text-align: left;" valign="top">
                        
                            <h1 style="display: block;margin: 0;padding: 0;font-family: Georgia;font-size: 32px;font-style: normal;font-weight: normal;line-height: 125%;letter-spacing: -1px;text-align: left;color: #43404D !important;">New York Design Summit</h1>

<h3 style="display: block;margin: 0;padding: 0;font-family: Georgia;font-size: 18px;font-style: italic;font-weight: normal;line-height: 125%;letter-spacing: -.5px;text-align: left;color: #ED5E29 !important;">September 19</h3>

<ul>
	<li style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">Uno</li>
	<li style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">Dos</li>
	<li style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">Tres</li>
</ul>

                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->
                
				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!-- // END HEADER -->
                                </td>
                            </tr>
                            <tr>
                                <td class="borderBar" background="https://gallery.mailchimp.com/27aac8a65e64c994c4416d6b8/images/diagborder.png" style="background:url('https://gallery.mailchimp.com/27aac8a65e64c994c4416d6b8/images/diagborder.png') repeat top left;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: url(https://gallery.mailchimp.com/27aac8a65e64c994c4416d6b8/images/diagborder.png);background-position: top left;background-repeat: repeat;background-color: #F8F8F8;height: 5px !important;">
                                    <img src="https://gallery.mailchimp.com/2425ea8ad3/images/blank.gif" height="5" width="5" style="display: block;border: 0;height: auto;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;">
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                    <!-- BEGIN UPPER BODY // -->
                                    <table border="0" cellpadding="0" cellspacing="0" width="600" id="templateUpperBody" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #F8F8F8;border-top: 0;border-bottom: 0;">
                                        <tr>
                                            <td valign="top" class="upperBodyContainer" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><table class="mcnImageBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" cellspacing="0" cellpadding="0">
    <tbody class="mcnImageBlockOuter">
            <tr>
                <td style="padding: 0px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnImageBlockInner" valign="top">
                    <table class="mcnImageContentContainer" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" align="left" cellspacing="0" cellpadding="0">
                        <tbody><tr>
                            <td class="mcnImageContent" style="padding-right: 0px;padding-left: 0px;padding-top: 0;padding-bottom: 0;text-align: center;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" valign="top">
                                
                                    
                                        <img alt="" src="https://gallery.mailchimp.com/569c0869e0552eb4cd827f095/images/nyc_large.jpg" style="max-width: 600px;padding-bottom: 0;display: inline !important;vertical-align: bottom;border: 0;height: auto;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;" class="mcnImage" width="600" align="middle">
                                    
                                
                            </td>
                        </tr>
                    </tbody></table>
                </td>
            </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!-- // END UPPER BODY -->
                                </td>
                            </tr>
                            <tr>
                                <td class="borderBar" background="https://gallery.mailchimp.com/27aac8a65e64c994c4416d6b8/images/diagborder.png" style="background:url('https://gallery.mailchimp.com/27aac8a65e64c994c4416d6b8/images/diagborder.png') repeat top left;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-image: url(https://gallery.mailchimp.com/27aac8a65e64c994c4416d6b8/images/diagborder.png);background-position: top left;background-repeat: repeat;background-color: #F8F8F8;height: 5px !important;">
                                    <img src="https://gallery.mailchimp.com/2425ea8ad3/images/blank.gif" height="5" width="5" style="display: block;border: 0;height: auto;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;">
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                    <!-- BEGIN COLUMNS // -->
                                    <table border="0" cellpadding="0" cellspacing="0" width="600" id="templateColumns" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #F8F8F8;border-top: 0;border-bottom: 0;">
                                        <tr>
                                            <td align="left" valign="top" class="columnsContainer" width="50%" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                                <table border="0" cellpadding="0" cellspacing="0" width="100%" class="templateColumn" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                                    <tr>
                                                        <td valign="top" class="leftColumnContainer" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><table class="mcnTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" cellspacing="0" cellpadding="0">
    <tbody class="mcnTextBlockOuter">
        <tr>
            <td class="mcnTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" valign="top">
              	<!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;">
				<tr>
				<![endif]-->
			    
				<!--[if mso]>
				<td valign="top" width="300" style="width:300px;">
				<![endif]-->
                <table style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnTextContentContainer" width="100%" border="0" align="left" cellspacing="0" cellpadding="0">
                    <tbody><tr>
                        
                        <td class="mcnTextContent" style="padding-top: 0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;color: #43404D;font-family: Georgia;font-size: 15px;line-height: 150%;text-align: left;" valign="top">
                        
                            <h4 style="display: block;margin: 0;padding: 0;font-family: Georgia;font-size: 12px;font-style: normal;font-weight: normal;line-height: 125%;letter-spacing: normal;text-align: left;color: #43404D !important;">JOIN US IN</h4><h2 style="display: block;margin: 0;padding: 0;font-family: Georgia;font-size: 26px;font-style: normal;font-weight: normal;line-height: 125%;letter-spacing: -.75px;text-align: left;color: #43404D !important;">Madison Square Garden, New York</h2>
                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->
                
				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                                                    </tr>
                                                </table>
                                            </td>
                                            <td align="left" valign="top" class="columnsContainer" width="50%" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                                <table border="0" cellpadding="0" cellspacing="0" width="100%" class="templateColumn" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                                    <tr>
                                                        <td valign="top" class="rightColumnContainer" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><table class="mcnTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" cellspacing="0" cellpadding="0">
    <tbody class="mcnTextBlockOuter">
        <tr>
            <td class="mcnTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" valign="top">
              	<!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;">
				<tr>
				<![endif]-->
			    
				<!--[if mso]>
				<td valign="top" width="300" style="width:300px;">
				<![endif]-->
                <table style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnTextContentContainer" width="100%" border="0" align="left" cellspacing="0" cellpadding="0">
                    <tbody><tr>
                        
                        <td class="mcnTextContent" style="padding-top: 0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;color: #43404D;font-family: Georgia;font-size: 15px;line-height: 150%;text-align: left;" valign="top">
                        
                            <h4 style="display: block;margin: 0;padding: 0;font-family: Georgia;font-size: 12px;font-style: normal;font-weight: normal;line-height: 125%;letter-spacing: normal;text-align: left;color: #43404D !important;">RESERVE YOUR SPOT TODAY</h4>
                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->
                
				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table><table class="mcnButtonBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" cellspacing="0" cellpadding="0">
    <tbody class="mcnButtonBlockOuter">
        <tr>
            <td style="padding-top: 0;padding-right: 18px;padding-bottom: 18px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnButtonBlockInner" valign="top" align="center">
                <table class="mcnButtonContentContainer" style="border-collapse: separate !important;border-radius: 3px;background-color: #ED5E29;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tbody>
                        <tr>
                            <td class="mcnButtonContent" style="font-family: Arial;font-size: 20px;padding: 15px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" valign="middle" align="center">
                                <a class="mcnButton " title="Register Now" href="http://" target="_self" style="font-weight: bold;letter-spacing: normal;line-height: 100%;text-align: center;text-decoration: none;color: #FFFFFF;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;display: block;">Register Now</a>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </td>
        </tr>
    </tbody>
</table></td>
                                                    </tr>
                                                </table>
                                            </td>
                                        </tr>
                                    </table>
                                    <!-- // END COLUMNS -->
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                    <!-- BEGIN LOWER BODY // -->
                                    <table border="0" cellpadding="0" cellspacing="0" width="600" id="templateLowerBody" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #F8F8F8;border-top: 0;border-bottom: 0;">
                                        <tr>
                                            <td valign="top" class="lowerBodyContainer" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><table class="mcnTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" cellspacing="0" cellpadding="0">
    <tbody class="mcnTextBlockOuter">
        <tr>
            <td class="mcnTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" valign="top">
              	<!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;">
				<tr>
				<![endif]-->
			    
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnTextContentContainer" width="100%" border="0" align="left" cellspacing="0" cellpadding="0">
                    <tbody><tr>
                        
                        <td class="mcnTextContent" style="padding-top: 0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;color: #43404D;font-family: Georgia;font-size: 15px;line-height: 150%;text-align: left;" valign="top">
                        
                            The New York Summit provides email senders and receivers from around the world a unique opportunity to come together and discuss that thing we emailed you about.
                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->
                
				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!-- // END LOWER BODY -->
                                </td>
                            </tr>
                            <tr>
                                <td align="center" valign="top" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
                                    <!-- BEGIN FOOTER // -->
                                    <table border="0" cellpadding="0" cellspacing="0" width="600" id="templateFooter" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #F8F8F8;border-top: 0;border-bottom: 10px solid #A6BFC9;">
                                        <tr>
                                            <td valign="top" class="footerContainer" style="padding-bottom: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"><table class="mcnTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" border="0" cellspacing="0" cellpadding="0">
    <tbody class="mcnTextBlockOuter">
        <tr>
            <td class="mcnTextBlockInner" style="padding-top: 9px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" valign="top">
              	<!--[if mso]>
				<table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;">
				<tr>
				<![endif]-->
			    
				<!--[if mso]>
				<td valign="top" width="600" style="width:600px;">
				<![endif]-->
                <table style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnTextContentContainer" width="100%" border="0" align="left" cellspacing="0" cellpadding="0">
                    <tbody><tr>
                        
                        <td class="mcnTextContent" style="padding-top: 0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;word-break: break-word;color: #43404D;font-family: Georgia;font-size: 11px;line-height: 125%;text-align: left;" valign="top">
                        
                            <em>Copyright © 2018 *|LIST:COMPANY|*, All rights reserved.</em>
<br>

    *|LIST:DESCRIPTION|*
    <br>
    <br>
    <strong>Our mailing address is:</strong>
    <br>
    *|HTML:LIST_ADDRESS_HTML|* 
    <br>
    <br>
	Want to change how you receive these emails?<br>
    You can <a href="*|UPDATE_PROFILE|*" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #43404D;font-weight: normal;text-decoration: underline;">update your preferences</a> or <a href="*|UNSUB|*" style="mso-line-height-rule: exactly;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #43404D;font-weight: normal;text-decoration: underline;">unsubscribe from this list</a>.
    <br>
    <br>
    

                        </td>
                    </tr>
                </tbody></table>
				<!--[if mso]>
				</td>
				<![endif]-->
                
				<!--[if mso]>
				</tr>
				</table>
				<![endif]-->
            </td>
        </tr>
    </tbody>
</table></td>
                                        </tr>
                                    </table>
                                    <!-- // END FOOTER -->
                                </td>
                            </tr>
                        </table>
                        <!-- // END TEMPLATE -->
                    </td>
                </tr>
            </table>
        </center>
    </body>
</html>

@pedrobaeza
Copy link
Collaborator

@rafaelbn please don't flood this issue and paste a large content that way. Enclose it between <detail> and </detail> and it will be folded by default. The one who wants to see it, can unfold it.

@yajo
Copy link
Contributor Author

yajo commented Mar 7, 2018

The <detail> stuff would be good, yes 😄 is done

In any case, that code above proves that basically making a 1st class email with Odoo is impossible until this issue is fixed. Thanks @rafaelbn!

@pedrobaeza
Copy link
Collaborator

@tde-banana-odoo maybe you can read this explanation about the importance of this and check if it can be done for v12.

@pedrobaeza
Copy link
Collaborator

It seems to be handled in #24572

@popama
Copy link

popama commented Oct 18, 2018

I found a quick way to wrap the html of html body in a markup layout which contain <html>, <head>, meta tags and <body>.

I use version 9.0 and I extended in my module the send_get_mail_body method from ../addons/mass_mailing/models/mail_mail with the following code:

class MailMail(osv.Model):
    _inherit = 'mail.mail'

    def send_get_mail_body(self, cr, uid, ids, partner=None, context=None):
    body = super(MailMail, self).send_get_mail_body(cr, uid, ids, partner=None, context=None)

    if body and 'header_newsletter' in body:
        head = '<head>...</head>'
        body = '<html>' + head + '<body>' + body + '</body></html>'

return body

"header_newsletter" is a custom class added in a custom snippet which is inserted in the mass mailing editor with others available snippets that built the template.

@pedrobaeza
Copy link
Collaborator

@yajo I think this is now possible to do it on v12, right?

@tde-banana-odoo
Copy link
Contributor

In v12 you have a mass mailing layout that is used (mass_mail_layout = self.env.ref('mass_mailing.mass_mailing_mail_layout', raise_if_not_found=False)). It adds header, media, ...

@pedrobaeza
Copy link
Collaborator

Then this means that we can close this issue, right?

@yajo
Copy link
Contributor Author

yajo commented Oct 19, 2018

The code: https://github.com/odoo/odoo/blob/12.0/addons/mass_mailing/views/mass_mailing_layout.xml

So yes, it seems we can close now. Thanks!

@yajo yajo closed this as completed Oct 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests