Skip to main content

outlook_mail_loader

GitHub last commit GitHub license<space><space> Documentation Status pre-commit PyPI PyPI - Python Version

Short Overview.

outlook_mail_loader is a python package (py>=3.6) which helps in handling outlook letters

This library helps to dump letters from outlook to some local folder in human readable format.

Installation via pip:

pip install outlook_mail_loader

Typical usages

1) Dump letters from outlook to local directory

If you want to dump all new letters from outlook folder to windows local folder.
Firstly, you should define dumper object from class MailFolderDumper
And then, whenever you want you can call method dump_new(…) to dump the new letters

Simplest example

from outlook_mail_loader import MailFolderDumper

mail_loader_obj = MailFolderDumper(
    str_outlook_folder_name="inbox",
    str_path_dir_where_to_save="mails",
)

# To dump the new letters from the asked outlook folder
mail_loader_obj.dump_new()

After the dump you will get file-folder structure like that:

str_path_dir_where_to_save
–> <str_outlook_folder_name>
—-> LETTER_1
—-> LETTER_2
—-> …
—-> LETTER_N
——> letter.txt
——> dict_metainfo.json
——> ATTACHMENTS
——–> file_1
——–> file_N

Full signature of mail_loader_obj.dump_new method

# Full signature of the dump_new method
mail_loader_obj.dump_new(
    int_max_last_letters_to_dump=10,
    is_to_mark_messages_as_read=False,
    is_to_remove_attachments=False,
    is_to_preserve_msg_obj=False,
)

Attributes and methods of mail_loader_obj

Attributes:

  • .str_outlook_folder_name (str): Folder name which to dump

  • .str_path_dir_where_to_save (str): Path where to dump

Methods:

  • .dump_new(…) - Dump new letters to set local directory

  • .print_stats_about_initialized_folders() - Print hierarchy for initialized outlook mail folder

  • .print_full_folders_hierarchy_from_root() - Print full hierarchy from root outlook mail folder

  • .get_list_names_of_all_outlook_folders() - Get list names of all outlook folders available

2) Process dumped letters

After the letters are dumped to local folder
You most probably want to do some action with them
Here are some handlers for doing it

Example

from outlook_mail_loader import DumpedMails

dumped_mails_obj = DumpedMails(str_path_dir_with_mails="mails",)

# Get dictionary with last letter
dict_last_letter = dumped_mails_obj.get_last_letter()
print(get_last_letter)

# Get dictionary with last N letter
list_dict_last_5_letter = dumped_mails_obj.get_last_n_letters(5)

# Print statistics about all dumped letters
dumped_mails_obj.print_stats_about_dumped_mails()

Format of the dictitonary with dumped letter

  • dict_one_letter[“letter”] - Text of the letter

  • dict_one_letter[“dict_metainfo”] - All metainfo about the letter

  • dict_one_letter[“list_attachments”] - List pathes to files with letter’s attachments

Attributes and methods of dumped_mails_obj

Attributes:

  • .str_path_dir_with_mails (str): Path to dir with dumped letters

  • .int_last_dumped_id (str): Id of the last dumped letter

Methods:

  • .get_last_letter() - Get dictionary with last letter

  • .get_last_n_letters(int_last_letters_to_get) - Get list of dicts of last N letters

  • .print_stats_about_dumped_mails() - Print statistics about all dumped letters

  • .clear_dumped_mails() - Clear from cache dumped mails

3) Listen to some outlook folder to dump all letters continuously

In case if you want to run some process only once and
then be sure that all new letters are dumped into the local folder
Then you can start mail folder listener

Example

from outlook_mail_loader import listen_outlook_mail_folder

# To dump the new letters from the asked outlook folder
listen_outlook_mail_folder(
    str_outlook_folder_name="inbox",
    str_path_dir_where_to_save="mails",
    int_seconds_step_in_dump=60,
)

Full signature of listen_outlook_mail_folder

from outlook_mail_loader import listen_outlook_mail_folder

# Full signature of the dump_new method
listen_outlook_mail_folder(
    str_outlook_folder_name="inbox",
    str_path_dir_where_to_save="mails",
    int_seconds_step_in_dump=60,
    is_to_mark_messages_as_read=False,
    is_to_remove_attachments=False,
    is_to_preserve_msg_obj=False,
)

Arguments description:

  • str_outlook_folder_name (str, optional): Which outlook folder to listen

  • str_path_dir_where_to_save (str, optional): Path to dir. where to save letters.

  • int_seconds_step_in_dump (int, optional): Seconds to wait between dumping new letters.

  • is_to_mark_messages_as_read (bool, optional): Flag if to mark as read saved letters. Default is False.

  • is_to_remove_attachments (bool, optional): Flag if to remove attachments to save disk space. Default is False.

  • is_to_preserve_msg_obj (bool, optional): Flag if to preserve outlook .msg object. Default is False.

Contacts

License

This project is licensed under the MIT License.

Metadata

Release files for outlook-mail-loader 0.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for outlook-mail-loader 0.1.9
File Interpreter ABI Platform
outlook_mail_loader-0.1.9-py2.py3-none-any.whl Python 3, Python 2 none any Details

Release files / outlook_mail_loader-0.1.9-py2.py3-none-any.whl

Download URL outlook_mail_loader-0.1.9-py2.py3-none-any.whl
Size 17.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
f984abdb01298025050be1209e20869924a9a0e7f48f401ebc58a82236ae76ca
BLAKE2b-256 checksum
How to use checksums
7c824bd2b7ebd9c63c83e037279af22390f339c9c1a949f89348b7142a6d063c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.1

Security for outlook-mail-loader 0.1.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page