Учебники

Python — IMAP

IMAP — это протокол поиска электронной почты, который не загружает электронные письма. Он просто читает их и отображает их. Это очень полезно в условиях низкой пропускной способности. Клиентская библиотека Python под названием imaplib используется для доступа к электронной почте по протоколу imap.

IMAP расшифровывается как Internet Mail Access Protocol. Впервые он был предложен в 1986 году.

Ключевые моменты:

  • IMAP позволяет клиентской программе манипулировать сообщениями электронной почты на сервере, не загружая их на локальный компьютер.

  • Электронная почта хранится и поддерживается удаленным сервером.

  • Это позволяет нам предпринимать любые действия, такие как загрузка, удаление почты без чтения почты. Это позволяет нам создавать, манипулировать и удалять удаленные папки сообщений, называемые почтовыми ящиками.

  • IMAP позволяет пользователям осуществлять поиск по электронной почте.

  • Это позволяет одновременный доступ к нескольким почтовым ящикам на нескольких почтовых серверах.

IMAP позволяет клиентской программе манипулировать сообщениями электронной почты на сервере, не загружая их на локальный компьютер.

Электронная почта хранится и поддерживается удаленным сервером.

Это позволяет нам предпринимать любые действия, такие как загрузка, удаление почты без чтения почты. Это позволяет нам создавать, манипулировать и удалять удаленные папки сообщений, называемые почтовыми ящиками.

IMAP позволяет пользователям осуществлять поиск по электронной почте.

Это позволяет одновременный доступ к нескольким почтовым ящикам на нескольких почтовых серверах.

IMAP команды

В следующей таблице описаны некоторые команды IMAP:

SN Описание команды
1 IMAP_LOGIN
Эта команда открывает соединение.
2 ВОЗМОЖНОСТЬ
Эта команда запрашивает список возможностей, которые поддерживает сервер.
3 NOOP
Эта команда используется в качестве периодического опроса новых сообщений или обновлений статуса сообщений в течение периода бездействия.
4 ВЫБРАТЬ
Эта команда помогает выбрать почтовый ящик для доступа к сообщениям.
5 EXAMINE
Это то же самое, что и команда SELECT, за исключением того, что изменение почтового ящика не допускается.
6 СОЗДАЙТЕ
Он используется для создания почтового ящика с указанным именем.
7 УДАЛЯТЬ
Он используется для окончательного удаления почтового ящика с заданным именем.
8 ПЕРЕИМЕНОВАТЬ
Используется для изменения имени почтового ящика.
9 ВЫЙТИ
Эта команда сообщает серверу, что клиент завершил сеанс. Сервер должен отправить BYE-ответ без тега до ответа OK, а затем закрыть сетевое соединение.

пример

В приведенном ниже примере мы подключаемся к серверу Gmail с учетными данными пользователя. Затем мы выбираем для отображения сообщений в почтовом ящике. Цикл for используется для отображения выбранных сообщений одно за другим, и, наконец, соединение закрывается.

import imaplib
import pprint

imap_host = 'imap.gmail.com'
imap_user = 'username@gmail.com'
imap_pass = 'password'

# connect to host using SSL
imap = imaplib.IMAP4_SSL(imap_host)

## login to server
imap.login(imap_user, imap_pass)

imap.select('Inbox')

tmp, data = imap.search(None, 'ALL')
for num in data[0].split():
	tmp, data = imap.fetch(num, '(RFC822)')
	print('Message: {0}\n'.format(num))
	pprint.pprint(data[0][1])
	break
imap.close()

В зависимости от конфигурации почтового ящика отображается почта.