В различных случаях доступ к почтовым серверам осуществляется из приложений Python для чтения электронной почты или реализации почтовых клиентов. Для получения сообщений электронной почты с почтового сервера обычно используется протокол протокол доступа к сообщениям в Интернете (IMAP). В этой статье мы покажем вам, как читать электронные письма с сервера, используя IMAP в Python. В статье будет подробно описано, как подключиться к почтовому серверу, получить доступ к нужной папке и прочитать электронные письма.
- Библиотека Python для чтения электронных писем с использованием IMAP
- Подключиться к серверу IMAP в Python
- Доступ к папкам электронной почты из почтового ящика
- Чтение писем из папки
Библиотека Python для чтения электронных писем с использованием IMAP
Чтобы читать электронные письма с почтового сервера через IMAP, мы будем использовать Aspose.Email для Python через .NET. Это мощная библиотека электронной почты, которая позволяет отправлять электронные письма и получать доступ к почтовым ящикам с почтовых серверов. Вы можете установить библиотеку из PyPI с помощью следующей команды.
pip install Aspose.Email-for-Python-via-NET
Для ручной установки с использованием файла .whl выполните следующие действия.
- Загрузите установочный файл .whl из раздела загрузки.
- В командной строке используйте команду: pip install «FileName> >.whl для установки библиотеки.
Подключиться к серверу электронной почты через IMAP в Python
Ниже приведены шаги для подключения к серверу электронной почты с использованием IMAP.
- Создайте экземпляр класса ImapClient и инициализируйте его, указав имя хоста, порт, имя пользователя и пароль.
- Используйте объект ImapClient для доступа к почтовому ящику.
В следующем примере кода показано, как подключиться к серверу электронной почты с помощью IMAP в Python.
from aspose.email import SecurityOptions, ImapClient
# create an instance of ImapClient and provide host, port, username and password
client = ImapClient("imap.domain.com", 993, "user@domain.com", "password")
# set security options
client.security_options = SecurityOptions.SSLIMPLICIT
# use ImapClient object to access mailbox
Доступ к папкам электронной почты из почтового ящика в Python
После того, как вы установили соединение с сервером электронной почты, вы можете выбрать папку, из которой вы хотите читать сообщения электронной почты. Давайте сначала посмотрим, как получить список всех папок в почтовом ящике. Ниже приведены шаги для получения информации о каждой папке.
- Создайте экземпляр класса ImapClient и инициализируйте его, указав имя хоста, порт, имя пользователя и пароль.
- Используйте метод ImapClient.listfolders() для получения коллекции папок в объекте.
- Прокрутите коллекцию и извлеките информацию о папках.
В следующем примере кода показано, как распечатать сведения о папках в почтовом ящике.
from aspose.email import ImapClient
# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# get list of folders
folderInfoColl = client.list_folders()
# iterate through the collection to get folders' info one by one
for folderInfo in folderInfoColl:
print("Folder name is " + folderInfo.name)
folderExtInfo = client.get_folder_info(folderInfo.name)
print("New message count: " + str(folderExtInfo.new_message_count))
print("Is it readonly? " + str(folderExtInfo.read_only))
print("Total number of messages " + str(folderExtInfo.total_message_count))
Давайте теперь перейдем к доступу к определенной папке в почтовом ящике с помощью IMAP.
- Создайте экземпляр класса ImapClient и инициализируйте его, указав имя хоста, порт, имя пользователя и пароль.
- Используйте метод ImapClient.selectfolder(string) для выбора папки.
В следующем примере кода показано, как выбрать папку электронной почты из почтового ящика.
from aspose.email import ImapClient
# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# select the folder from mailbox
client.select_folder("Inbox")
Чтение писем из папки в Python
Ниже приведены шаги для чтения сообщений электронной почты из определенной папки в почтовом ящике с помощью Python.
- Создайте экземпляр класса ImapClient и инициализируйте его, указав имя хоста, порт, имя пользователя и пароль.
- Используйте метод ImapClient.selectfolder(string) для выбора папки.
- Получить список сообщений в папке с помощью метода client.listmessages().
- Перебрать коллекцию сообщений.
- Получите подробную информацию о каждом сообщении электронной почты и при необходимости сохраните его на диск.
В следующем примере кода показано, как читать электронные письма с почтового сервера в Python.
from aspose.email import ImapClient
# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# select folder
client.select_folder("Inbox")
# read each message in collection
for msg in client.list_messages():
print( "From: '{}', MIME Id: {}".format(msg.from_address, msg.message_id) )
# save message on disk
client.save_message(msg.unique_id, msg.unique_id + "_out.eml")
Получите бесплатную лицензию API
Вы можете бесплатно использовать Aspose.Email для Python через .NET, получив временную лицензию.
Вывод
В этой статье вы узнали, как читать электронные письма с почтового сервера, используя IMAP в Python. Примеры кода продемонстрировали, как подключиться к почтовому серверу, получить список папок в почтовом ящике, выбрать папку и прочитать электронные письма. Кроме того, вы можете посетить документацию, чтобы узнать больше об Aspose.Email для Python через .NET. Кроме того, вы можете скачать полный пакет примеров исходного кода с GitHub. Если у вас возникнут какие-либо вопросы или вопросы, сообщите нам об этом через наш форум.