Tool for work with e-mail messages and not with the imap protocol.
Project description
Tool for work with e-mail messages and not with the imap protocol.
Python version |
3.3+ |
License |
MIT |
PyPI |
About
There are many different libraries for working with e-mail via the imap protocol. Including the standard imaplib library. However, these libraries contain various shortcomings, such as:
excessive low level
returned results are not ready to work with them
lack of convenient tools for working with directories
lack of convenient tools for working with letters in directories
imap_tools library takes into account the shortcomings of other libraries. Main features:
transparent work with letter attributes
work with letters in directories (copy, delete, flag, move, seen)
work with directories (list, set, get, create, exists, rename, delete, status)
absence of external dependencies
Installation
$ pip install imap_tools
Quick guide
Init:
from imap_tools import MailBox
mailbox = MailBox('imap.mail.com')
mailbox.login('test@mail.com', 'password')
Message:
for message in mailbox.fetch():
message.id
message.uid
message.subject
message.from_
message.to
message.date
message.text
message.html
message.flags
for filename, payload in message.get_attachments():
filename, payload
Mailbox:
# NOTE: You can use 2 approaches to perform these operations
# "by one" - Perform operation for each message separately per N commands
# "in bulk" - Perform operation for message set per 1 command
# COPY all messages from current dir to folder1, *by one
for msg in mailbox.fetch():
res = mailbox.copy(msg.uid, 'INBOX/folder1')
# DELETE all messages from current dir to folder1, *in bulk
mailbox.delete([msg.uid for msg in mailbox.fetch()])
# FLAG unseen messages in current folder as Answered and Flagged, *in bulk
mailbox.flag([msg.uid for msg in mailbox.fetch('(UNSEEN)')], ['Answered', 'Flagged'], True)
# MOVE all messages from current dir to folder2, *in bulk
mailbox.move([msg.uid for msg in mailbox.fetch()], 'INBOX/folder2')
# mark SEEN all messages sent at 05.03.2007 in current folder as unseen, *in bulk
mailbox.seen([msg.uid for msg in mailbox.fetch("SENTON 05-Mar-2007")], False)
Folders:
# LIST
for folder in mailbox.folder.list('INBOX'):
print(folder['flags'], folder['delim'], folder['name'])
# SET
mailbox.folder.set('INBOX')
# GET
current_folder = mailbox.folder.get()
# CREATE
mailbox.folder.create('folder1')
# EXISTS
is_exists = mailbox.folder.exists('folder1')
# RENAME
mailbox.folder.rename('folder1', 'folder2')
# DELETE
mailbox.folder.delete('folder2')
# STATUS
for status_key, status_val in mailbox.folder.status('some_folder').items():
print(status_key, status_val)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file imap_tools-0.1.3.zip
.
File metadata
- Download URL: imap_tools-0.1.3.zip
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee091a30025030594f5bac2af6e32b53340645893e64770a439ad0acc5bb9f5e |
|
MD5 | f231b2505f0a6e9f7c80bb8da1b2c6cf |
|
BLAKE2b-256 | 0cbc9e3c719183fd92af92b68bbf843eb03f30a96e106fcd067c63a85bfff87c |