- SMTP Helper functions. Only uses Standard Library.
def email_without_attachment(message: str, subject: str, to_list: str, cc_list: str, login: str, password: str):
"""
:param message: HTML String with Email message contained. See Examples/Email_Strings.py
:param subject: Subject String
:param to_list: Semicolon separated list of email addresses. (ex - [email protected]; [email protected]; [email protected];)
:param cc_list: Semicolon separated list of email addresses. (ex - [email protected]; [email protected]; [email protected];)
:param login: Login email.
:param password: Password for O365
"""
from smtputility import email_without_attachment
test_message = """
<HTML>
<BODY>
Message Text
<br>
</BODY>
</HTML>
"""
email_without_attachment(test_message,'SMTP Testing','[email protected];[email protected];','[email protected]','[email protected]','password')
email_with_attachments: Send email with attachments. Can send any number/type of attachments in email.
def email_with_attachments(
message: str, subject: str, to_list: str, cc_list: str, login: str, password: str, *args
):
"""
:param login: Login email.
:param password: Password for O365.
:param message: HTML String with Email message contained. See Examples/Email_Body.html.
:param subject: Subject String
:param to_list: Semicolon separated list of email addresses. (ex - [email protected]; [email protected]; [email protected];)
:param cc_list: Semicolon separated list of email addresses. (ex - [email protected]; [email protected]; [email protected];)
:param *args: Paths to attachments.
"""
from smtputility import email_with_attachments
test_message = """
<HTML>
<BODY>
Message Text
<br>
</BODY>
</HTML>
"""
email_with_attachments(test_message,'SMTP Testing','[email protected];[email protected];','[email protected]','[email protected]','password',
r'C:\Users\user\some_directory\test_1.txt')
def notify_error(report_name, error_log, to_list: str,login: str, password: str):
"""
:param to_list: List of emails to receive notification.
:param report_name: Name of automated report.
:param error_log: Raised exception or other error to report.
:param login: Login email.
:param password: Password for O365
"""
from smtputility import notify_error
import os
def foo():
raise Exception('Error!')
try:
foo()
except Exception as e:
notify_error(f"{os.path.basename(__file__)}", e, "[email protected]",'[email protected]','password')
def default_table_style(df, index: False):
""" Apply a default clean table style to pandas df.to_html() for use in email strings.
:param index: Determines whether you want index displayed in the HTML. Defaults to False.
:type index: Boolean
:param df: Dataframe to apply the style to.
:type df: Pandas Dataframe
:return: HTML string for insertion in email.
:rtype: string
"""
from smtputility import default_table_style
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(15, 4)), columns=list('ABCD'))
test_message = f"""
<HTML>
<BODY>
{default_table_style(df,index=False)}
<br>
</BODY>
</HTML>
"""