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 = '[email protected]' 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()
В зависимости от конфигурации почтового ящика отображается почта.