Skip to main content


The Mailbox driver allows you to send and receive emails using various email providers. It provides a simple and intuitive interface to connect to your email account, send emails, retrieve emails from your mailbox, manage folders, and perform other email-related operations.


To get started, you need to establish a connection to your email account using your login credentials and email server settings. You can save this connection for subsequent operations.

username = "USERNAME"
password = "PASSWORD"
email_from = "[email protected]",
smtp_server = "",
smtp_port = 465,
smtp_type = "SSL"

emails =, password, email_from, smtp_server, smtp_port, smtp_type)


You can use the Mailbox driver to send emails. Here are different methods for sending emails:


Send a plain text email to anyone:

email = "[email protected]"
subject = "The Tesla action is going up"
content = "Check the link below for the chart data made from fresh dataset: [LINK]"

emails.send(email_to=email, subject=subject, html=content)


Send an email with an attachment:

email = "[email protected]"
subject = "The Tesla action is going up"
content = "Check the link below for the chart data made from fresh dataset: [LINK]"
files = ["path/to/my/super/data.csv"]

emails.send(email_to=email, subject=subject, html=content, files=files)


Send an email with HTML content:

email = "[email protected]"
subject = "The Tesla action is going up"
image_path = "path/to/my/super/data.png"
html = f"<h1>Check the link below for the chart image:</h1><br/> <img src='{image_path}'/>"

emails.send(email_to=email, subject=subject, html=html)


You can retrieve emails from your mailbox using the Mailbox driver.

email_df = emails.get()

Get from folder

Specify a folder to retrieve emails from:

box = "INBOX"  # Check the list of folders you have with get_mailbox
email_df = emails.get(box)

Get mailbox list

Get a list of available mailboxes (folders) in your email account:

mailboxes = emails.get_mailbox()


Specify a main folder to retrieve subfolders:

main_folder = "INBOX"
subfolders = emails.get_mailbox(main_folder)



List the emails in a specific folder:

folder = "ALL"
emails_in_folder = emails.get_mailbox(folder)


Get the status of an email in a specific folder:

uid = "4460"
folder = "INBOX"
status = emails.status(uid, folder)


Mark an email as seen or unseen:

uid = "4460"
emails.set_seen(uid, True)


Set flags for an email:

uid = "4460"
flag = "ANSWERED"
# Possible values for flag:
# flag = 'SEEN'
# flag = 'ANSWERED'
# flag = 'FLAGGED'
# flag = 'DELETED'
# flag = 'DRAFT'
# flag = 'RECENT'
attachments = emails.set_flag(uid, flag, True)

Please note that the Mailbox driver supports various email providers, and the specific methods and parameters may vary depending on your provider. Make sure to refer to the documentation or specific examples for your email provider to ensure correct usage.