local email_body=$(cat <<- PANCAKE
From: ${SMTP_FROM}
To: ${SMTP_TO}
Subject: BACKUP SCRIPT FAILED
$0 backup script failed on ${HOSTNAME}
Exit code: ${exit_code}
Failed at line: ${line_number}
$(journalctl -o cat --user _SYSTEMD_INVOCATION_ID=${invocation_id} || true)
PANCAKE
)
## TODO: see above
# Send email via authenticated SMTP using curl
echo "${email_body}" | curl -s --url "${SMTP_URL}" \
--ssl-reqd \
--mail-from "${SMTP_FROM}" \
--mail-rcpt "${SMTP_TO}" \
--user "${SMTP_USERNAME}:${SMTP_PASSWORD}" \
--upload-file -
}(Checks docs)
Oh.
When on a random CLI though my personal preference though is still to use telnet as the commands are easily memorized and there’s something more natural about typing the email out and then sending it.
I came across curl when I tested the mailgun.com smtp relay (mandatory tls + auth) and it worked immediately.
openssl s_client -connect my.mailserver.com:465