Files
certificates_check/mail.py
2026-03-26 10:32:29 +01:00

50 lines
1.4 KiB
Python

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.")