Skip to content
Snippets Groups Projects
Commit afa6fb1b authored by nimrod's avatar nimrod
Browse files

Add SMTP checks.

parent fad2d856
No related branches found
No related tags found
No related merge requests found
...@@ -14,6 +14,7 @@ locals { ...@@ -14,6 +14,7 @@ locals {
"transmission", "transmission",
"vouch", "vouch",
"ssh", "ssh",
"smtp",
] ]
function_names = [for name in local.functions : "${local.function_name_prefix}-${replace(name, "_", "")}"] function_names = [for name in local.functions : "${local.function_name_prefix}-${replace(name, "_", "")}"]
} }
......
from smtplib import SMTP
from utils import publish
def check_smtp(port):
"""Check the SMTP port."""
try:
smtp = SMTP("smtp.shore.co.il", port)
ehlo = smtp.ehlo()
if ehlo[0] != 250 or "LOGIN" in ehlo[1].decode().split():
return [False, f"First EHLO on port {port} failed."]
if smtp.starttls() != (220, b"TLS go ahead"):
return [False, f"STARTTLS on port {port} failed."]
ehlo = smtp.ehlo()
if ehlo[0] != 250 or "LOGIN" not in ehlo[1].decode().split():
return [False, f"Second EHLO on port {port} failed."]
smtp.close()
except Exception as e: # pylint: disable=broad-except,invalid-name
print(str(e))
return [False, f"SMTP failure on port {port}."]
return [True, f"SMTP on port {port} is OK."]
def handler(event, context): # pylint: disable=unused-argument
"""Lambda event handler."""
for port in [25, 587]:
success, message = check_smtp(port)
print(message)
if not success:
publish(message)
if __name__ == "__main__":
handler("event", "context")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment