Send a rather basic email notif
Also pep8 fixes
1 files changed, 62 insertions, 0 deletions
diff --git a/synapse/config/emailconfig.py b/synapse/config/emailconfig.py
new file mode 100644
index 0000000000..978826627b
--- /dev/null
+++ b/synapse/config/emailconfig.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+# Copyright 2015, 2016 OpenMarket Ltd
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file can't be called email.py because if it is, we cannot:
+import email.utils
+
+from ._base import Config
+
+
+class EmailConfig(Config):
+ """
+ Email Configuration
+ """
+
+ def read_config(self, config):
+ email_config = config.get("email", None)
+ if email_config:
+ self.email_enable_notifs = email_config.get("enable_notifs", True)
+ if (
+ "smtp_host" not in email_config or
+ "smtp_port" not in email_config or
+ "notif_from" not in email_config
+ ):
+ raise RuntimeError(
+ "You must set smtp_host, smtp_port and notif_from "
+ "to send email notifications"
+ )
+
+ self.email_smtp_host = email_config["smtp_host"]
+ self.email_smtp_port = email_config["smtp_port"]
+ self.email_notif_from = email_config["notif_from"]
+
+ # make sure it's valid
+ parsed = email.utils.parseaddr(self.email_notif_from)
+ if parsed[1] == '':
+ raise RuntimeError("Invalid notif_from address")
+ else:
+ self.email_enable_notifs = False
+ self.email_smtp_host = None
+ self.email_smtp_port = None
+ self.email_notif_from = None
+
+ def default_config(self, config_dir_path, server_name, **kwargs):
+ return """
+ # Enable sending emails for notification events
+ #email_config:
+ # enable_notifs: false
+ # smtp_host: "localhost"
+ # smtp_port: 25
+ """
|