mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2024-12-25 07:47:05 +00:00
Actually edit the files on Postfix's end
This commit is contained in:
parent
c653f660bb
commit
df8bacd0ed
@ -534,16 +534,29 @@ def smtp_relay_get():
|
|||||||
@app.route('/system/smtp/relay', methods=["POST"])
|
@app.route('/system/smtp/relay', methods=["POST"])
|
||||||
@authorized_personnel_only
|
@authorized_personnel_only
|
||||||
def smtp_relay_set():
|
def smtp_relay_set():
|
||||||
|
from editconf import edit_conf
|
||||||
config = utils.load_settings(env)
|
config = utils.load_settings(env)
|
||||||
newconf = request.form
|
newconf = request.form
|
||||||
try:
|
try:
|
||||||
# Write on Postfix config
|
|
||||||
# Write on daemon env
|
# Write on daemon env
|
||||||
config["SMTP_RELAY_ENABLED"] = (newconf.get("enabled") == "true")
|
config["SMTP_RELAY_ENABLED"] = (newconf.get("enabled") == "true")
|
||||||
config["SMTP_RELAY_HOST"] = newconf.get("host")
|
config["SMTP_RELAY_HOST"] = newconf.get("host")
|
||||||
config["SMTP_RELAY_AUTH"] = (newconf.get("auth_enabled") == "true")
|
config["SMTP_RELAY_AUTH"] = (newconf.get("auth_enabled") == "true")
|
||||||
config["SMTP_RELAY_USER"] = newconf.get("user") == "true"
|
config["SMTP_RELAY_USER"] = newconf.get("user") == "true"
|
||||||
utils.write_settings(config, env)
|
utils.write_settings(config, env)
|
||||||
|
# Write on Postfix config
|
||||||
|
edit_conf("/etc/postfix/main.cf", (
|
||||||
|
("relay_host", f"[{config['SMTP_RELAY_HOST']}]:587" if config["SMTP_RELAY_ENABLED"] else ""),
|
||||||
|
("smtp_sasl_auth_enable", "yes" if config["SMTP_RELAY_AUTH"] else "no"),
|
||||||
|
("smtp_sasl_security_options", "noanonymous" if config["SMTP_RELAY_AUTH"] else "anonymous"),
|
||||||
|
("smtp_sasl_tls_security_options", "noanonymous" if config["SMTP_RELAY_AUTH"] else "anonymous"),
|
||||||
|
))
|
||||||
|
if config["SMTP_RELAY_AUTH"]:
|
||||||
|
# Edit the sasl password
|
||||||
|
with open("/etc/postfix/sasl_passwd", "w") as f:
|
||||||
|
f.write(f"[{config['SMTP_RELAY_HOST']}]:587 {config['SMTP_RELAY_USER']}:{newconf.get('pass')}")
|
||||||
|
utils.shell("check_output", ["/usr/bin/chmod", "600", "/etc/postfix/sasl_passwd"], capture_stderr=True)
|
||||||
|
utils.shell("check_output", ["postma", "/etc/postfix/sasl_passwd"], capture_stderr=True)
|
||||||
# Restart Postfix
|
# Restart Postfix
|
||||||
return utils.shell("check_output", ["/usr/bin/systemctl", "restart", "postfix"], capture_stderr=True)
|
return utils.shell("check_output", ["/usr/bin/systemctl", "restart", "postfix"], capture_stderr=True)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
Loading…
Reference in New Issue
Block a user