From 44987dfdbae12881b158a2e626ee18f2ddb9c54d Mon Sep 17 00:00:00 2001 From: dsosnowski Date: Thu, 26 Mar 2026 10:32:29 +0100 Subject: [PATCH] Initial commit --- cert_check.sh | 19 +++++++++++++++++++ mail.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 cert_check.sh create mode 100644 mail.py diff --git a/cert_check.sh b/cert_check.sh new file mode 100644 index 0000000..7b4153e --- /dev/null +++ b/cert_check.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +script_dir="$(cd "$(dirname "$0")" && pwd)" + +cert_valid_for=$( + certbot certificates 2>/dev/null | + grep -A 4 "fm.ines.org.pl" | + grep "Expiry Date" | + awk -F'[()]' '{print $2}' | + awk '{print $2}' +) + +cert_valid_for="${cert_valid_for//[^0-9]/}" +cert_valid_for=$((10#${cert_valid_for:-0})) + +if (( cert_valid_for < 30 )) +then + python3 "$script_dir/mail.py" --user "certificates@piga.pl" --password 'cgpM!tABM43_meJ' --to "it@piga.pl" --subject "Wygasa certyfikat dla serwera $(hostname)" --body "Certyfikat dla serwera $(hostname) jest ważny jeszcze $cert_valid_for dni." +fi diff --git a/mail.py b/mail.py new file mode 100644 index 0000000..619ff98 --- /dev/null +++ b/mail.py @@ -0,0 +1,49 @@ +import argparse +import smtplib +from email.message import EmailMessage + + +SMTP_HOST = "mail.piga.pl" +SMTP_PORT = 587 + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description="Wysylka maila przez SMTP mail.piga.pl:587 z STARTTLS." + ) + parser.add_argument("--user", required=True, help="Login SMTP, np. user@piga.pl") + parser.add_argument("--password", required=True, help="Haslo do konta SMTP") + parser.add_argument("--to", required=True, dest="recipient", help="Adres odbiorcy") + parser.add_argument("--subject", default="Test SMTP", help="Temat wiadomosci") + parser.add_argument( + "--body", + required=True, + help='Tresc wiadomosci, np. --body "To jest test".', + ) + return parser.parse_args() + + +def build_message(args: argparse.Namespace) -> EmailMessage: + message = EmailMessage() + message["From"] = args.user + message["To"] = args.recipient + message["Subject"] = args.subject + message.set_content(args.body) + return message + + +def send_mail(args: argparse.Namespace) -> None: + message = build_message(args) + + with smtplib.SMTP(SMTP_HOST, SMTP_PORT, timeout=30) as server: + server.ehlo() + server.starttls() + server.ehlo() + server.login(args.user, args.password) + server.send_message(message) + + +if __name__ == "__main__": + arguments = parse_args() + send_mail(arguments) + print("Mail wyslany poprawnie.")