|
|
|
#!/usr/bin/env python3
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# /**********************************************************************************
|
|
|
|
# * _author : Domeniko Gentner
|
|
|
|
# * _mail : code@tuxstash.de
|
|
|
|
# * _repo : https://git.tuxstash.de/gothseidank/tweet2png
|
|
|
|
# * _license : This project is under MIT License
|
|
|
|
# *********************************************************************************/
|
|
|
|
from email.mime.text import MIMEText
|
|
|
|
from json import load as j_load
|
|
|
|
from pathlib import Path
|
|
|
|
from platform import system
|
|
|
|
from smtplib import SMTP_SSL, SMTPHeloError, SMTPAuthenticationError, SMTPException
|
|
|
|
from ssl import create_default_context
|
|
|
|
|
|
|
|
|
|
|
|
class mail:
|
|
|
|
|
|
|
|
def __init__(self, what: str):
|
|
|
|
|
|
|
|
if system().lower() == "windows":
|
|
|
|
path = Path("mail_credentials.json")
|
|
|
|
else:
|
|
|
|
path = Path("/etc/tw2hugo/mail_credentials.json")
|
|
|
|
|
|
|
|
with path.open("r") as fp:
|
|
|
|
credentials = j_load(fp)
|
|
|
|
|
|
|
|
message = MIMEText(what, _charset='utf8')
|
|
|
|
message['Subject'] = "twpng error report"
|
|
|
|
message['From'] = credentials['email-sendfrom']
|
|
|
|
message['To'] = credentials['email-sendto']
|
|
|
|
|
|
|
|
try:
|
|
|
|
with SMTP_SSL(host=credentials['smtp-server'],
|
|
|
|
port=credentials['smtp-port'],
|
|
|
|
context=create_default_context()) as server:
|
|
|
|
server.login(user=credentials['email-user'], password=credentials['email-password'])
|
|
|
|
server.sendmail(to_addrs=credentials['email-sendto'],
|
|
|
|
msg=message.as_string(),
|
|
|
|
from_addr=credentials['email-sendfrom'])
|
|
|
|
|
|
|
|
except SMTPHeloError as helo:
|
|
|
|
print(f"SMTPHeloError: {helo}")
|
|
|
|
except SMTPAuthenticationError as auth_error:
|
|
|
|
print(f"Authentication Error: {auth_error}")
|
|
|
|
except SMTPException as e:
|
|
|
|
print(f"SMTPException: {e}")
|
|
|
|
|