summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@archlinux.org>2020-02-07 13:44:29 +0100
committerLukas Fleischer <lfleischer@archlinux.org>2020-02-11 12:19:56 +0100
commitb855ce9452ed7b83d0f6f538a17755918cc4132f (patch)
treea5f9c70957720f7505646e08a3e824b64ed78504
parentde549fb2d5063394f91e06f366bc5d426f5f0891 (diff)
downloadaur-b855ce9452ed7b83d0f6f538a17755918cc4132f.tar.gz
aur-b855ce9452ed7b83d0f6f538a17755918cc4132f.tar.xz
Make SMTP port and authentication configurable
Add more options to configure the smtplib implementation for sending notification emails. The port can be changed using the new smtp-port option. Encryption can be configured using smtp-use-ssl and smtp-use-starttls. Keep in mind that you usually also need to change the port when enabling either of these options. Authentication can be configured using smtp-user and smtp-password. Authentication is disabled if either of these values is empty. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
-rwxr-xr-xaurweb/scripts/notify.py20
-rw-r--r--conf/config.defaults5
2 files changed, 24 insertions, 1 deletions
diff --git a/aurweb/scripts/notify.py b/aurweb/scripts/notify.py
index 6c5c709e..5b18a476 100755
--- a/aurweb/scripts/notify.py
+++ b/aurweb/scripts/notify.py
@@ -65,6 +65,7 @@ class Notification:
return body.rstrip()
def send(self):
+ sendmail = aurweb.config.get('notifications', 'sendmail')
sender = aurweb.config.get('notifications', 'sender')
reply_to = aurweb.config.get('notifications', 'reply-to')
reason = self.__class__.__name__
@@ -95,8 +96,25 @@ class Notification:
else:
# send email using smtplib; no local MTA required
server_addr = aurweb.config.get('notifications', 'smtp-server')
+ server_port = aurweb.config.getint('notifications', 'smtp-port')
+ use_ssl = aurweb.config.getboolean('notifications', 'smtp-use-ssl')
+ use_starttls = aurweb.config.getboolean('notifications', 'smtp-use-starttls')
+ user = aurweb.config.get('notifications', 'smtp-user')
+ passwd = aurweb.config.get('notifications', 'smtp-password')
+
+ if use_ssl:
+ server = smtplib.SMTP_SSL(server_addr, server_port)
+ else:
+ server = smtplib.SMTP(server_addr, server_port)
+
+ if use_starttls:
+ server.ehlo()
+ server.starttls()
+ server.ehlo()
+
+ if user and passwd:
+ server.login(user, passwd)
- server = smtplib.SMTP(server_addr)
server.set_debuglevel(0)
server.sendmail(sender, recipient, msg.as_bytes())
server.quit()
diff --git a/conf/config.defaults b/conf/config.defaults
index 23d46b06..b69d0312 100644
--- a/conf/config.defaults
+++ b/conf/config.defaults
@@ -49,6 +49,11 @@ window_length = 86400
notify-cmd = /usr/local/bin/aurweb-notify
sendmail =
smtp-server = localhost
+smtp-port = 25
+smtp-use-ssl = 0
+smtp-use-starttls = 0
+smtp-user =
+smtp-password =
sender = notify@aur.archlinux.org
reply-to = noreply@aur.archlinux.org