martinrusev / Imbox
Licence: mit
Python IMAP for Human beings
Stars: ✭ 981
Programming Languages
python
139335 projects - #7 most used programming language
Labels
Projects that are alternatives of or similar to Imbox
Mail
Library to send e-mails over different transports and protocols (like SMTP and IMAP) using immutable messages and streams. Also includes SMTP server.
Stars: ✭ 399 (-59.33%)
Mutual labels: imap
Kanmail
📥 An email client that functions like a kanban board.
Stars: ✭ 833 (-15.09%)
Mutual labels: imap
Mailkit
A cross-platform .NET library for IMAP, POP3, and SMTP.
Stars: ✭ 4,477 (+356.37%)
Mutual labels: imap
Php imap open exploit
Bypassing disabled exec functions in PHP (c) CRLF
Stars: ✭ 392 (-60.04%)
Mutual labels: imap
How to get emails imap tutorial
How to get emails including there attachments and how to extract various attributes from those emails. See https://youtu.be/zFEEGkvo6O8 for a more detailed information.
Stars: ✭ 30 (-96.94%)
Mutual labels: imap
Hydroxide
A third-party, open-source ProtonMail CardDAV, IMAP and SMTP bridge
Stars: ✭ 578 (-41.08%)
Mutual labels: imap
Laravel Imap
Laravel IMAP is an easy way to integrate both the native php-imap module and an extended custom imap protocol into your Laravel app.
Stars: ✭ 416 (-57.59%)
Mutual labels: imap
Docker Mailserver
Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container.
Stars: ✭ 8,115 (+727.22%)
Mutual labels: imap
Deltachat Desktop
Email-based instant messaging for Desktop.
Stars: ✭ 526 (-46.38%)
Mutual labels: imap
Feeds2imap.clj
Pull RSS/Atom feeds to your IMAP folders with Clojure on JVM.
Stars: ✭ 31 (-96.84%)
Mutual labels: imap
Nioimapclient
High performance, async IMAP client implementation
Stars: ✭ 28 (-97.15%)
Mutual labels: imap
Cypht
Cypht: Lightweight Open Source webmail written in PHP and JavaScript
Stars: ✭ 628 (-35.98%)
Mutual labels: imap
Imbox - Python IMAP for Humans
.. image:: https://travis-ci.org/martinrusev/imbox.svg?branch=master :target: https://travis-ci.org/martinrusev/imbox :alt: Build Status
Python library for reading IMAP mailboxes and converting email content to machine readable data
Requirements
Python (3.3, 3.4, 3.5, 3.6, 3.7)
Installation
pip install imbox
Usage
.. code:: python
from imbox import Imbox
# SSL Context docs https://docs.python.org/3/library/ssl.html#ssl.create_default_context
with Imbox('imap.gmail.com',
username='username',
password='password',
ssl=True,
ssl_context=None,
starttls=False) as imbox:
# Get all folders
status, folders_with_additional_info = imbox.folders()
# Gets all messages from the inbox
all_inbox_messages = imbox.messages()
# Unread messages
unread_inbox_messages = imbox.messages(unread=True)
# Flagged messages
inbox_flagged_messages = imbox.messages(flagged=True)
# Un-flagged messages
inbox_unflagged_messages = imbox.messages(unflagged=True)
# Flagged messages
flagged_messages = imbox.messages(flagged=True)
# Un-flagged messages
unflagged_messages = imbox.messages(unflagged=True)
# Messages sent FROM
inbox_messages_from = imbox.messages(sent_from='[email protected]')
# Messages sent TO
inbox_messages_to = imbox.messages(sent_to='[email protected]')
# Messages received before specific date
inbox_messages_received_before = imbox.messages(date__lt=datetime.date(2018, 7, 31))
# Messages received after specific date
inbox_messages_received_after = imbox.messages(date__gt=datetime.date(2018, 7, 30))
# Messages received on a specific date
inbox_messages_received_on_date = imbox.messages(date__on=datetime.date(2018, 7, 30))
# Messages whose subjects contain a string
inbox_messages_subject_christmas = imbox.messages(subject='Christmas')
# Messages whose UID is greater than 1050
inbox_messages_uids_greater_than_1050 = imbox.messages(uid__range='1050:*')
# Messages from a specific folder
messages_in_folder_social = imbox.messages(folder='Social')
# Some of Gmail's IMAP Extensions are supported (label and raw):
all_messages_with_an_attachment_from_martin = imbox.messages(folder='all', raw='from:[email protected] has:attachment')
all_messages_labeled_finance = imbox.messages(folder='all', label='finance')
for uid, message in all_inbox_messages:
# Every message is an object with the following keys
message.sent_from
message.sent_to
message.subject
message.headers
message.message_id
message.date
message.body.plain
message.body.html
message.attachments
# To check all available keys
print(message.keys())
# To check the whole object, just write
print(message)
{
'headers':
[{
'Name': 'Received-SPF',
'Value': 'pass (google.com: domain of ......;'
},
{
'Name': 'MIME-Version',
'Value': '1.0'
}],
'body': {
'plain': ['ASCII'],
'html': ['HTML BODY']
},
'attachments': [{
'content': <StringIO.StringIO instance at 0x7f8e8445fa70>,
'filename': "avatar.png",
'content-type': 'image/png',
'size': 80264
}],
'date': u 'Fri, 26 Jul 2013 10:56:26 +0300',
'message_id': u '51F22BAA.1040606',
'sent_from': [{
'name': u 'Martin Rusev',
'email': '[email protected]'
}],
'sent_to': [{
'name': u 'John Doe',
'email': '[email protected]'
}],
'subject': u 'Hello John, How are you today'
}
# With the message id, several actions on the message are available:
# delete the message
imbox.delete(uid)
# mark the message as read
imbox.mark_seen(uid)
Changelog
Changelog <https://github.com/martinrusev/imbox/blob/master/CHANGELOG.md>
_
Running the tests
You can run the imbox tests with tox
.
Requirements:
- the supported python versions
-
tox
. Tox is packaged in Debian and derivatives distributions.
On Ubuntu, you can install several python versions with:
.. code:: sh
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.X
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].