diff --git a/synapse/config/emailconfig.py b/synapse/config/emailconfig.py
index a187161272..0030b5db1e 100644
--- a/synapse/config/emailconfig.py
+++ b/synapse/config/emailconfig.py
@@ -68,6 +68,9 @@ class EmailConfig(Config):
self.email_notif_for_new_users = email_config.get(
"notif_for_new_users", True
)
+ self.email_riot_base_url = email_config.get(
+ "riot_base_url", None
+ )
if "app_name" in email_config:
self.email_app_name = email_config["app_name"]
else:
@@ -85,6 +88,9 @@ class EmailConfig(Config):
def default_config(self, config_dir_path, server_name, **kwargs):
return """
# Enable sending emails for notification events
+ # Defining a custom URL for Riot is only needed if email notifications
+ # should contain links to a self-hosted installation of Riot; when set
+ # the "app_name" setting is ignored.
#email:
# enable_notifs: false
# smtp_host: "localhost"
@@ -95,4 +101,5 @@ class EmailConfig(Config):
# notif_template_html: notif_mail.html
# notif_template_text: notif_mail.txt
# notif_for_new_users: True
+ # riot_base_url: "http://localhost/riot"
"""
diff --git a/synapse/push/mailer.py b/synapse/push/mailer.py
index 53551632b6..ce2d31fb98 100644
--- a/synapse/push/mailer.py
+++ b/synapse/push/mailer.py
@@ -439,15 +439,23 @@ class Mailer(object):
})
def make_room_link(self, room_id):
- # need /beta for Universal Links to work on iOS
- if self.app_name == "Vector":
- return "https://vector.im/beta/#/room/%s" % (room_id,)
+ if self.hs.config.email_riot_base_url:
+ base_url = self.hs.config.email_riot_base_url
+ elif self.app_name == "Vector":
+ # need /beta for Universal Links to work on iOS
+ base_url = "https://vector.im/beta/#/room"
else:
- return "https://matrix.to/#/%s" % (room_id,)
+ base_url = "https://matrix.to/#"
+ return "%s/%s" % (base_url, room_id)
def make_notif_link(self, notif):
- # need /beta for Universal Links to work on iOS
- if self.app_name == "Vector":
+ if self.hs.config.email_riot_base_url:
+ return "%s/#/room/%s/%s" % (
+ self.hs.config.email_riot_base_url,
+ notif['room_id'], notif['event_id']
+ )
+ elif self.app_name == "Vector":
+ # need /beta for Universal Links to work on iOS
return "https://vector.im/beta/#/room/%s/%s" % (
notif['room_id'], notif['event_id']
)
|