diff options
author | Lukas Fleischer <lfleischer@archlinux.org> | 2020-02-07 13:44:29 +0100 |
---|---|---|
committer | Lukas Fleischer <lfleischer@archlinux.org> | 2020-02-11 12:19:56 +0100 |
commit | b855ce9452ed7b83d0f6f538a17755918cc4132f (patch) | |
tree | a5f9c70957720f7505646e08a3e824b64ed78504 | |
parent | de549fb2d5063394f91e06f366bc5d426f5f0891 (diff) | |
download | aur-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-x | aurweb/scripts/notify.py | 20 | ||||
-rw-r--r-- | conf/config.defaults | 5 |
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 |