.. meta:: :description: Send email with attachment in Python. :keywords: send, email, Python, attachment .. _attachments: Sending Email with Attachments ------------------------------ Red Mail also provides a convenient way to include attachments to the emails, for example: .. code-block:: python import pandas as pd from pathlib import Path email.send( subject='Some attachments', receivers=['first.last@example.com'], attachments={ 'data.csv': Path('path/to/file.csv'), 'data.xlsx': pd.DataFrame(...), 'raw_file.html': '

Just some HTML

', } ) As seen, Red Mail allows passing various objects to the attachments. You may pass a list, a single object or a dict. If you pass a dict, the key is used to determine the name of the attachment and possibly the type. Here is a list of supported value formats if ``dict`` is passed to attachments: ================ =============== ================================================================= Value type Dict key Dict value ================ =============== ================================================================= ``pd.Series`` Attachment name Turned to CSV, XLSX, HTML etc. depending on file extension in key ``pd.DataFrame`` Attachment name Turned to CSV, XLSX, HTML etc. depending on file extension in key ``str`` Attachment name Attachment content as raw text ``bytes`` Attachment name Attachment content as raw bytes ``pathlib.Path`` Attachment name Path to a file that is attached (using key as the file name) ================ =============== ================================================================= Here is a list of supported value formats if ``list`` or single object is passed to attachments: ================ =============== ========================================================= Type Attachment name Value ================ =============== ========================================================= ``pathlib.Path`` From file name Content of the file read as the content of the attachment ``str`` From file name Considered as file path, handled the same as above ================ =============== =========================================================