51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
import os
|
|
import smtplib
|
|
import ssl
|
|
|
|
from config import Config
|
|
from email.message import EmailMessage
|
|
|
|
from config import Config
|
|
from log import log
|
|
|
|
from typing import Any, List
|
|
|
|
|
|
def index_ojects_by_parameter(object_list: List, param: Any):
|
|
"""
|
|
Create a dictionary from passed list where each list entry is keyed
|
|
by passed param
|
|
"""
|
|
|
|
results = {}
|
|
for obj in object_list:
|
|
results[getattr(obj, param)] = obj
|
|
|
|
return results
|
|
|
|
|
|
def send_mail(to_addr, from_addr, subj, body):
|
|
# From https://docs.python.org/3/library/email.examples.html
|
|
|
|
# Create a text/plain message
|
|
msg = EmailMessage()
|
|
msg.set_content(body)
|
|
|
|
msg['Subject'] = subj
|
|
msg['From'] = from_addr
|
|
msg['To'] = to_addr
|
|
|
|
# Send the message via SMTP server.
|
|
context = ssl.create_default_context()
|
|
try:
|
|
s = smtplib.SMTP(host=Config.MAIL_SERVER, port=Config.MAIL_PORT)
|
|
if Config.MAIL_USE_TLS:
|
|
s.starttls(context=context)
|
|
if Config.MAIL_USERNAME and Config.MAIL_PASSWORD:
|
|
s.login(Config.MAIL_USERNAME, Config.MAIL_PASSWORD)
|
|
s.send_message(msg)
|
|
except Exception as e:
|
|
print(e)
|
|
finally:
|
|
s.quit()
|