SMTP smarthost

Settings and credentials for a SMTP smarthost provider are stored inside Redis, a module can discover it by using a Python library. The cluster won’t send the email for you, the module will do it if it has been designed to send emails.

Python example code:

#!/usr/bin/env python3

import sys
import json
import agent


smtp = agent.get_smarthost_settings(agent.redis_connect())
if smtp['enabled'] == True:
    pass
json.dump(smtp, fp=sys.stdout)

output example:

{"port": 587, "host": "", "username": "", "password": "", "enabled": false, "encrypt_smtp": "starttls", "tls_verify": true}
  • encrypt_smtp: select the SMTP encryption method (none, starttls, tls)
  • tls_verify: verify if the certificate is valid and if the hostname is associated to the certificate (true/false)
  • username: it might be empty if the smtp server does not require an user authentication

The module can handle smarthost setup changes by defining an event handler. Create an executable script with path ${AGENT_INSTALL_DIR}/events/smarthost-changed/10handler and run any command from it. For instance:

mycommand && systemctl --user reload mymodule.service