Skip to content

vanalmsick/beautifulemail

Repository files navigation

BeautifulEmail

⚠️🏗️️ Note: This is only the first version - actively working on additional features!

BeautifulEmail is a python package that makes it easy and quick to send beautifully formatted emails with beuatiful tables/dataframes. BeautifulEmail is for Data Scientists with a deadline.

Email Example:

Email Preview

Getting it

$ pip install beautifulemail

Update Package: (execute regularly to get the latest features)

$ pip install beautifulemail --upgrade

How to use:

from beautifulemail import Connection, DataFrameToHTML

df_styled = ...

df_html = DataFrameToHTML(df=df_styled)

# format numbers automatically 
df_html.col_num_fmt_auto()

# add background styling to columns
df_html.col_styles(column=['last_contact', 'revenue'], classes=['bg_light_blue'])
df_html.col_styles(column=['last_contact'], classes=['text_color_amber'])

# use markdown to write email - more infoss here: www.markdownguide.org/cheat-sheet/
email_body_markdown = f"""
Hi,

This is a test email with **bold text**, *italic text*, ~~strikethrough text~~, <mark>highlited text</mark>, [hyperlink text](https://www.google.com), and text that could be footnoted<note>[1]</note>.

# This would be a Heading 1 of an ordered list

1. First step
2. Second step
3. Third step

{df_html}

Embedded image:
<img src="cid:image1" style="width: 100px;">

Best wishes,
Me
    """

    # connect to email server
    with Connection(host='smtp.gmail.com', port=465, ssl=True, user='myemai@gmail.com', password='my_password') as conn:
        # send email
        status = conn.send_email(
            from_='my_emai@gmail.com',
            to_=['your_emai@gmail.com', 'second_emai@gmail.com'],
            subject='Email Subject',
            body_markdown=email_body_markdown,
            attachments=['./README.md'],
            embedded_imgs=['./email_preview.jpg'],
            dry_run=False
            )
        
        # status contains all the email information including the html body
        print('Email sent:', status)

        # save sent email documntation/summary as excel
        conn.save_sent_email_summary('sent_emails.xlsx')



About

BeautifulEmail is a python package that makes it easy and quick to send beautifully formatted emails with beuatiful tables/dataframes. BeautifulEmail is for Data Scientists with a deadline.

Topics

Resources

License

Stars

Watchers

Forks

Contributors