Mini HTTP service that takes a JSON with server information and check
if it's accessible from the application and if it can receive emails.
Key |
Requirement |
Explanation |
SHARED_KEY |
mandatory |
Secret shared between main app and this one. (Needs to be sent in the header Authorization) |
PORT |
optional (default 80) |
Port used for the application |
SMTP_CN |
optional (default hostname) |
Common Name to use for client certificate when doing a STARTTLS |
SMTP_FROM_SPOOF |
optional (default spoof@amazon.com) |
Email to check for SPF checks (spoofing this email as MAIL FROM) |
SMTP_CONN_TIMEOUT |
optional (30 seconds) |
How long to wait for the SMTP server to answer |
SMTP_OPT_TIMEOUT |
optional (30 seconds) |
How long to wait for the SMTP server to answer each command |
TLS_MIN_VERSION |
optional (TLS1.2) |
Check TLS Table for acceptable values. This is used when doing a STARTTLS on server that supports it. |
TLS Version |
EnvVar |
SSLv3.0 |
SSL30 |
TLSv1 |
TLS10 |
TLSv1.1 |
TLS11 |
TLS1.2 |
TLS12 |
TLS1.3 |
TLS13 |
{
"from": "bounce@myserver.com",
"body": "Hello World\n Are you doing well ?\n\nTester",
"subject": "Hello World",
"server": {
"server": "example.com",
"port": 25,
"mx": false,
"test_email": "test@example.com"
}
}
Key |
Explanation |
from |
Address to use in the MAIL FROM |
body |
Body of the mail |
subject |
Subject of the mail |
server.server |
Server to check |
server.port |
Port to use to attempt the connection |
server.mx |
Instead of resolving the IP, resolve the MX of the server first then check IPs |
server.test_email |
Used as RCPT TO when doing SMTP checks |
{
"success": true,
"hello_banner": "220 example.com ESMTP Postfix (Debian/GNU)",
"tls_version": "VersionTLS12",
"general_log": {
"1/CONNECTION": "192.168.22.3:25",
"2/EHLO": "tardis.example.com",
"3/STARTTLS": "VersionTLS12",
"4/MAIL FROM": "test@example.com",
"5/RCPT TO": "me@example.com",
"6/DATA": "\nHello World\nAre you doing well ?\n\nTester",
"7/QUIT": ""
},
"spf_log": {
"1/CONNECTION": "192.168.22.3:25",
"2/EHLO": "tardis.zerospam.ca",
"3/STARTTLS": "",
"8/SPF-FAIL": "antoineaf@admincmd.com"
}
}
{
"success": false,
"hello_banner": "220 set.example.com ESMTP Postfix (Debian/GNU)",
"tls_version": "VersionTLS12",
"error_message": {
"command": "STARTTLS",
"error_msg": "x509: certificate is valid for example.com, not set.example.com"
},
"general_log": {
"1/CONNECTION": "192.168.22.3:25",
"2/EHLO": "tardis.example.com",
"3/STARTTLS": ""
},
"spf_log": {
}
}