All Projects → martinrusev → Imbox

martinrusev / Imbox

Licence: mit
Python IMAP for Human beings

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
Imap Backup
Backup GMail (or other IMAP) accounts to disk
Stars: ✭ 522 (-46.79%)
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
Neutron
Self-hosted server for the ProtonMail client
Stars: ✭ 452 (-53.92%)
Mutual labels:  imap
Mail
💌 Mail app for Nextcloud
Stars: ✭ 528 (-46.18%)
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
James Project
Emails at the heart of your business logic!
Stars: ✭ 485 (-50.56%)
Mutual labels:  imap
Imap
Object-oriented, fully tested PHP IMAP library
Stars: ✭ 678 (-30.89%)
Mutual labels:  imap
Greenmail
Official master for the Greenmail project
Stars: ✭ 424 (-56.78%)
Mutual labels:  imap
Sieve
Sieve Script Editor
Stars: ✭ 452 (-53.92%)
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
Mailcow Dockerized
mailcow: dockerized - 🐮 + 🐋 = 💕
Stars: ✭ 4,573 (+366.16%)
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].