From ff1dfec39aa85df24a6f6e8bf74aec3337b88883 Mon Sep 17 00:00:00 2001
From: Philip Rosenberg-Watt
Date: Sun, 9 Feb 2020 07:25:45 -0700
Subject: [PATCH] Add port to relay if it contains a colon
This closes #1357
---
core/admin/mailu/internal/views/postfix.py | 6 +++++-
towncrier/newsfragments/1357.feature | 1 +
2 files changed, 6 insertions(+), 1 deletion(-)
create mode 100644 towncrier/newsfragments/1357.feature
diff --git a/core/admin/mailu/internal/views/postfix.py b/core/admin/mailu/internal/views/postfix.py
index 21a4aa91..0843b147 100644
--- a/core/admin/mailu/internal/views/postfix.py
+++ b/core/admin/mailu/internal/views/postfix.py
@@ -36,7 +36,11 @@ def postfix_transport(email):
return flask.abort(404)
localpart, domain_name = models.Email.resolve_domain(email)
relay = models.Relay.query.get(domain_name) or flask.abort(404)
- return flask.jsonify("smtp:[{}]".format(relay.smtp))
+ ret = "smtp:[{0}]".format(relay.smtp)
+ if ":" in relay.smtp:
+ split = relay.smtp.split(':')
+ ret = "smtp:[{0}]:{1}".format(split[0], split[1])
+ return flask.jsonify(ret)
@internal.route("/postfix/sender/login/")
diff --git a/towncrier/newsfragments/1357.feature b/towncrier/newsfragments/1357.feature
new file mode 100644
index 00000000..56fa443f
--- /dev/null
+++ b/towncrier/newsfragments/1357.feature
@@ -0,0 +1 @@
+Relay a domain to a nonstandard SMTP port by adding ":" to the remote hostname or IP address.
\ No newline at end of file