summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/push/mailer.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/synapse/push/mailer.py b/synapse/push/mailer.py
index afdf439664..7ef64f8f6d 100644
--- a/synapse/push/mailer.py
+++ b/synapse/push/mailer.py
@@ -219,7 +219,7 @@ class Mailer(object):
         if msgformat == "org.matrix.custom.html":
             ret["body_text_html"] = safe_markup(event.content["formatted_body"])
         else:
-            ret["body_text_plain"] = event.content["body"]
+            ret["body_text_html"] = safe_text(event.content["body"])
 
         return ret
 
@@ -301,6 +301,17 @@ def safe_markup(raw_html):
     )))
 
 
+def safe_text(raw_text):
+    """
+    Process text: treat it as HTML but escape any tags (ie. just escape the
+    HTML) then linkify it.
+    """
+    return jinja2.Markup(bleach.linkify(bleach.clean(
+        raw_text, tags=[], attributes={},
+        strip=False
+    )))
+
+
 def deduped_ordered_list(l):
     seen = set()
     ret = []