Skip to main content

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

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

outlook_mail_loader-0.1.9-py2.py3-none-any.whl (17.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file outlook_mail_loader-0.1.9-py2.py3-none-any.whl.

File metadata

  • Download URL: outlook_mail_loader-0.1.9-py2.py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using 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

File hashes

Hashes for outlook_mail_loader-0.1.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f984abdb01298025050be1209e20869924a9a0e7f48f401ebc58a82236ae76ca
MD5 f84927ee7710ad73bc9c3fa9a3a63318
BLAKE2b-256 7c824bd2b7ebd9c63c83e037279af22390f339c9c1a949f89348b7142a6d063c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page