Initial commit
This commit is contained in:
49
mail.py
Normal file
49
mail.py
Normal file
@@ -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.")
|
||||
Reference in New Issue
Block a user