python box_imbox

Imbox - Python IMAP for Humans

68747470733a2f2f7472617669732d63692e6f72672f6d617274696e72757365762f696d626f782e7376673f6272616e63683d6d6173746572

Python library for reading IMAP mailboxes and converting email content to

machine readable data

Requirements

Python (3.3, 3.4, 3.5, 3.6)

Installation

pip install imbox

Usage

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='sender@example.org')

# Messages sent TO

inbox_messages_to = imbox.messages(sent_to='receiver@example.org')

# 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:martin@amon.cx 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': ,

'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': 'martin@amon.cx'

}],

'sent_to': [{

'name': u 'John Doe',

'email': 'john@gmail.com'

}],

'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

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:

sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt update

sudo apt install python3.X

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值