From e57148d0e9ae8c63419939835f1b0aa6f0e8cca6 Mon Sep 17 00:00:00 2001 From: Anish Lakhwara Date: Fri, 8 Sep 2023 08:18:36 -0700 Subject: [PATCH] feat: add SMTP {port, use_tls} config (#1142) * feat: add SMTP {port, use_tls} config * If `password` is None don't attempt to log in * remove 'can be omitted' comment --------- Co-authored-by: Ilya Kreymer --- backend/btrixcloud/emailsender.py | 14 +++++++++----- chart/templates/secrets.yaml | 1 + chart/values.yaml | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/backend/btrixcloud/emailsender.py b/backend/btrixcloud/emailsender.py index 8833e5eb..f860b3d2 100644 --- a/backend/btrixcloud/emailsender.py +++ b/backend/btrixcloud/emailsender.py @@ -16,6 +16,8 @@ class EmailSender: self.password = os.environ.get("EMAIL_PASSWORD") self.reply_to = os.environ.get("EMAIL_REPLY_TO") or self.sender self.smtp_server = os.environ.get("EMAIL_SMTP_HOST") + self.smtp_port = int(os.environ.get("EMAIL_SMTP_PORT", 587)) + self.smtp_use_tls = bool(os.environ.get("EMAIL_SMTP_USE_TLS", True)) self.default_origin = os.environ.get("APP_ORIGIN") @@ -35,11 +37,13 @@ class EmailSender: msg.set_content(message) context = ssl.create_default_context() - with smtplib.SMTP(self.smtp_server, 587) as server: - server.ehlo() # Can be omitted - server.starttls(context=context) - server.ehlo() # Can be omitted - server.login(self.sender, self.password) + with smtplib.SMTP(self.smtp_server, self.smtp_port) as server: + if self.smtp_use_tls: + server.ehlo() + server.starttls(context=context) + server.ehlo() + if self.password is not None: + server.login(self.sender, self.password) server.send_message(msg) # server.sendmail(self.sender, receiver, message) diff --git a/chart/templates/secrets.yaml b/chart/templates/secrets.yaml index 244346c8..c72b07f2 100644 --- a/chart/templates/secrets.yaml +++ b/chart/templates/secrets.yaml @@ -14,6 +14,7 @@ stringData: EMAIL_SENDER: "{{ .Values.email.sender_email }}" EMAIL_REPLY_TO: "{{ .Values.email.reply_to }}" EMAIL_PASSWORD: "{{ .Values.email.password }}" + EMAIL_SMTP_USE_TLS: "{{ .Values.email.use_tls }}" SUPERUSER_EMAIL: "{{ .Values.superuser.email }}" SUPERUSER_PASSWORD: "{{ .Values.superuser.password }}" diff --git a/chart/values.yaml b/chart/values.yaml index 7927ab29..bd9aef17 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -282,6 +282,7 @@ email: sender_email: example@example.com password: password reply_to_email: example@example.com + use_tls: True # Deployment options