2020-04-13 00:16:23 +00:00
< style >
< / style >
< h2 > SMTP Relays< / h2 >
2020-04-13 14:34:14 +00:00
< p > SMTP Relays are third-party services you can hand off the responsability of getting the mail delivered. They
can be useful when, for example, port 25 is blocked.< / p >
2020-04-13 17:21:33 +00:00
< p > Here, you can configure an authenticated SMTP relay (for example, < a href = "https://sendgrid.com/"
2020-04-13 14:34:14 +00:00
target="_blank">SendGrid< / a > ) over port 587.< / p >
< div id = "smtp_relay_config" >
2020-04-13 14:53:47 +00:00
< h3 > SMTP Relay Configuration< / h3 >
2020-04-16 16:01:49 +00:00
< form class = "form-horizontal" role = "form" onsubmit = "set_smtp_relay_config(); return false;" >
2020-04-13 14:34:14 +00:00
< div class = "form-group" >
2020-04-16 11:45:55 +00:00
< table id = "smtp-relays" class = "table" style = "width: 600px" >
2020-04-13 17:29:14 +00:00
< tr >
< td >
< label for = "use_relay" class = "col-sm-1 control-label" > Use Relay?< / label >
< / td >
< td >
< div class = "col-sm-10" >
< input type = "checkbox" id = "use_relay" name = "use_relay" value = "true"
onclick="checkfields();">
< / div >
< / td >
< / tr >
2020-04-13 14:57:56 +00:00
< tr >
2020-04-13 15:13:26 +00:00
< td >
2020-04-13 17:14:39 +00:00
< label for = "relay_host" class = "col-sm-1 control-label" > Hostname< / label >
2020-04-13 15:13:26 +00:00
< / td >
< td >
< div class = "col-sm-10" >
< input type = "text" class = "form-control" id = "relay_host" placeholder = "host.domain.tld" >
< / div >
< / td >
2020-04-13 17:14:39 +00:00
< td style = "padding: 0; font-weight: bold;" > :587< / td >
2020-04-13 16:55:00 +00:00
< / tr >
< tr >
2020-04-13 17:05:49 +00:00
< td >
2020-04-13 17:14:39 +00:00
< label for = "relay_use_auth" class = "col-sm-1 control-label" > Authenticate< / label >
2020-04-13 17:05:49 +00:00
< / td >
< td >
2020-04-13 17:09:04 +00:00
< div class = "col-sm-10" >
< input checked type = "checkbox" id = "relay_use_auth" name = "relay_use_auth" value = "true"
2020-04-13 17:29:14 +00:00
onclick="checkfields();">
2020-04-13 17:09:04 +00:00
< / div >
2020-04-13 17:05:49 +00:00
< / td >
2020-04-13 14:57:56 +00:00
< / tr >
2020-04-13 14:53:47 +00:00
2020-04-13 14:57:56 +00:00
< tr >
2020-04-13 15:13:26 +00:00
< td >
2020-04-13 15:18:26 +00:00
< label for = "relay_auth_user" class = "col-sm-1 control-label" > Username< / label >
2020-04-13 15:13:26 +00:00
< / td >
< td >
< div class = "col-sm-10" >
< input type = "text" class = "form-control" id = "relay_auth_user" placeholder = "user" >
< / div >
< / td >
2020-04-13 14:57:56 +00:00
< / tr >
2020-04-13 14:53:47 +00:00
2020-04-13 14:57:56 +00:00
< tr >
2020-04-13 15:13:26 +00:00
< td >
2020-04-13 15:18:26 +00:00
< label for = "relay_auth_pass" class = "col-sm-1 control-label" > Password/Key< / label >
2020-04-13 15:13:26 +00:00
< / td >
< td >
< div class = "col-sm-10" >
< input type = "password" class = "form-control" id = "relay_auth_pass" placeholder = "password" >
< / div >
< / td >
2020-04-13 14:57:56 +00:00
< / tr >
< / table >
2020-04-13 14:34:14 +00:00
< / div >
2020-04-13 17:21:33 +00:00
< div >
2020-04-13 14:34:14 +00:00
< button type = "submit" class = "btn btn-primary" > Update< / button >
< / div >
< / form >
< / div >
2020-04-14 09:08:11 +00:00
< script >
const use_relay = document.getElementById("use_relay")
const relay_host = document.getElementById("relay_host")
const relay_use_auth = document.getElementById("relay_use_auth")
const relay_auth_user = document.getElementById("relay_auth_user")
const relay_auth_pass = document.getElementById("relay_auth_pass")
function checkfields() {
let relay_enabled = use_relay.checked
let auth_enabled = relay_use_auth.checked
relay_host.disabled = !relay_enabled
relay_use_auth.disabled = !relay_enabled
2020-04-15 14:02:20 +00:00
relay_auth_user.disabled = !(relay_enabled & & auth_enabled)
2020-04-14 09:08:11 +00:00
relay_auth_pass.disabled = !(relay_enabled & & auth_enabled)
}
2020-04-16 11:45:55 +00:00
function show_smtp_relays() {
api(
"/system/smtp/relay",
"GET",
{},
data => {
use_relay.checked = data.enabled
relay_host.value = data.host
relay_use_auth.checked = data.auth_enabled
relay_auth_user.value = data.user
relay_auth_pass.value = ""
2020-04-14 09:08:11 +00:00
2020-04-16 11:45:55 +00:00
checkfields()
}
)
}
2020-04-16 16:01:49 +00:00
function set_smtp_relay_config() {
api(
"/system/smtp/relay",
"POST",
{
enabled: use_relay.checked,
host: relay_host.value,
auth_enabled: relay_use_auth.checked,
user: relay_auth_user.value,
key: relay_auth_pass.value
},
() => {
show_modal_error("Done!", "The configuration has been updated and Postfix was restarted successfully. Please make sure everything is functioning as intended.", () => {
return false
})
2020-04-16 21:16:02 +00:00
},
(text, xhr) => {
if (xhr.status != 403) {
show_modal_error("Error", `< h5 > ${xhr}< / h5 > < br > < pre > ${text}< / pre > < br > Welp, oof`)
}
2020-04-16 16:01:49 +00:00
}
)
}
2020-04-14 09:08:11 +00:00
< / script >