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

Python API для чтения электронных писем

Чтобы читать электронные письма с почтовых серверов, мы будем использовать Aspose.Email для Python через .NET. Это многофункциональный почтовый API, который позволяет вам реализовывать почтовые клиенты из ваших приложений Python. Вы можете либо скачать.whl-файл, либо установить API с помощью следующей команды pip.

> pip install Aspose.Email-for-Python-via-NET

Чтение писем с почтовых серверов в Python

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

Чтение сообщений электронной почты с использованием протокола POP3

Ниже приведены шаги для чтения сообщений электронной почты с использованием протокола POP3.

  • Создайте объект класса Pop3Client и инициализируйте его хостом, портом, именем пользователя и паролем.
  • Установите параметры безопасности, используя свойство Pop3Client.security\options.
  • Получите количество сообщений, используя метод Pop3Client.get_message\count().
  • Получите доступ к каждому сообщению в цикле, используя метод Pop3Client.fetch\message().

В следующем примере кода показано, как читать электронную почту в Python с использованием протокола POP3.

# create POP3 client
client = Pop3Client("pop.gmail.com", 995, "username", "password")

# set security options
client.security_options = SecurityOptions.AUTO

# get message count
messageCount = client.get_message_count()
print("Total messages: " + str(messageCount))

# create an instance of the MailMessage class to read message    
for i in range(0,messageCount):
    message = client.fetch_message(i+1)
    print("From:" + str(message.from_address))
    print("Subject:" + message.subject)
    print(message.html_body)

Чтение сообщений электронной почты с использованием IMAP

Ниже приведены шаги для чтения сообщений электронной почты с использованием IMAP.

  • Создайте объект класса ImapClient и инициализируйте его хостом, портом, именем пользователя и паролем.
  • Выберите папку с помощью метода ImapClient.select\folder(folderName).
  • Прокрутите список сообщений, используя метод ImapClient.list\messages().

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

# connect to mail server using IMAP
client = ImapClient("imap.gmail.com", 993, "username", "password")

# select folder
client.select_folder("Inbox")

# loop through email messages and save them as .eml files
for msg in client.list_messages():
    print("Subject: " + msg.subject)
    print("HtmlBody: " + msg.html_body)
    print("TextBody: " + msg.body)
    client.save_message(msg.unique_id, msg.unique_id + "_out.eml")

Получите бесплатную лицензию API

Вы можете использовать Aspose.Email для Python через .NET, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как читать электронные письма с почтовых серверов с помощью Python. В частности, вы увидели, как использовать клиенты POP3 и IMAP для получения и чтения сообщений электронной почты. Вы можете узнать больше об API электронной почты Python, используя документацию. Кроме того, вы можете размещать свои вопросы на нашем форуме.

Смотрите также