[FIX] mass_mailing: absolute URLs to email images
Partial backport of 9.0 commit a14f89c8 to 8.0 <base href=""> are not well supported in some webmails Replace absolute URLs by full path appending the domain. Closes #10062
This commit is contained in:
parent
5425316eff
commit
fc3c0b22f9
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
import urlparse
|
import urlparse
|
||||||
import werkzeug.urls
|
import werkzeug.urls
|
||||||
|
import re
|
||||||
|
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
from openerp import tools
|
from openerp import tools
|
||||||
|
@ -80,6 +81,14 @@ class MailMail(osv.Model):
|
||||||
base = "<base href='%s'>" % domain
|
base = "<base href='%s'>" % domain
|
||||||
body = tools.append_content_to_html(base, body, plaintext=False, container_tag='div')
|
body = tools.append_content_to_html(base, body, plaintext=False, container_tag='div')
|
||||||
|
|
||||||
|
# resolve relative image url to absolute for outlook.com
|
||||||
|
def _sub_relative2absolute(match):
|
||||||
|
return match.group(1) + urlparse.urljoin(domain, match.group(2))
|
||||||
|
# Regex: https://regex101.com/r/aE8uG5/3
|
||||||
|
body = re.sub('(<img(?=\s)[^>]*\ssrc=["\'])(/[^/][^"\']+)', _sub_relative2absolute, body)
|
||||||
|
# Regex: https://regex101.com/r/kT3lD5/2
|
||||||
|
body = re.sub(r'(<[^>]+\bstyle=["\'][^"\']+\burl\([\'"]?)(/[^/\'"][^\'")]+)', _sub_relative2absolute, body)
|
||||||
|
|
||||||
# generate tracking URL
|
# generate tracking URL
|
||||||
if mail.statistics_ids:
|
if mail.statistics_ids:
|
||||||
tracking_url = self._get_tracking_url(cr, uid, mail, partner, context=context)
|
tracking_url = self._get_tracking_url(cr, uid, mail, partner, context=context)
|
||||||
|
|
Loading…
Reference in New Issue