Skip to main content

The library allows you to view, receive, and send emails.

Project description

PyMailService

Библиотека позволяет просматривать, получать и отправлять электронные письма

Фактически, класс является оберткой для imaplib и smtplib, позволяющий упростить их использование

Для начала работы, Вам нужно:

  • почтовый ящик, к которому возможно подключиться через imap ssl и smtp ssl
  • логин и пароль, от данного ящика
  • знать imap и smtp сервер (например у яндека: imap.yandex.ru и smtp.yandex.ru, соответственно)
  • знать imap и smtp порты (например у яндекса: 993 и 465 соответственно)

Пример создания обьекта класса:

    post = EmailsPost(
        email_login=LOGIN_EMAIL,
        email_password=PASSWORD_EMAIL,
        imap_server="imap.yandex.ru",
        smtp_server="smtp.yandex.ru",
        imap_port=993,
        smtp_port=465,
    )

После инициализации, необходимо явно подключиться к почте:

    check = post.connect()
    if check is True:
        print("success")
    else:
        print(check)

В случае успешного подключения, метод возвращает True, в противном случае, кортеж вида:

(False, error(b'[AUTHENTICATIONFAILED] LOGIN invalid credentials or IMAP is disabled sc=cDdQwR5MouQ0_051313_imap-production-468'))

Большинство методов, обернуто в декоратор, вида:

def reconnect_decorator(func):
    def wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except Exception as e:
            args[0].connect()
            return func(*args, **kwargs)
    return wrapper

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

Для получения писем, необходимо выбрать папку, из которой они будут получены:

post.select_folders("inbox")

по умолчанию, задана папка "inbox", поэтому вызов выше, будет аналогичен вызову: post.select_folders()

Узнать наименования папок или их наличие можно вызовом:

folders: tuple[str, list[bytes]] = post.get_folders()

Пример возвращаемого значения:

('OK', [b'(\\HasChildren \\Marked \\Drafts) "|" Drafts', b'(\\HasNoChildren \\Unmarked \\Templates) "|" "Drafts|template"', b'(\\HasNoChildren \\Marked \\NoInferiors) "|" INBOX', b'(\\HasNoChildren \\Unmarked) "|" Outbox', b'(\\HasNoChildren \\Marked \\Sent) "|" Sent', b'(\\HasNoChildren \\Unmarked \\Junk) "|" Spam', b'(\\HasNoChildren \\Marked \\Trash) "|" Trash'])

После выбора папки необходимо получить, если это первично, или обновить список писем в ней:

post.update_email(fltr="UNSEEN")

по умолчанию, задан фильтр "UNSEEN", поэтому вызов выше, будет аналогичен вызову:

post.update_email()

Данный вызов получит запишет в переменную self.list_uid_email uid всех непрочитанных сообщений в данной папке

Получить электронное письмо возможно следующим вызовом:

email = post.get_email(uid)

uid можно получить:

uid = post.get_uid_last_email()

Данный способ возвращает uid последнего письма или 0, в случае их отсутствия

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymailservice-0.0.2.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PyMailService-0.0.2-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file pymailservice-0.0.2.tar.gz.

File metadata

  • Download URL: pymailservice-0.0.2.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for pymailservice-0.0.2.tar.gz
Algorithm Hash digest
SHA256 b7a0d0288aa1de1100db899d7bcff807e7e55878af8b068c87504cafb1663f2d
MD5 b10212f3836aa4557c7628326ac6b8a8
BLAKE2b-256 589621afc84caa7709102a780822e28a5d7b38b33a0e5d37a8c08e740328d8c3

See more details on using hashes here.

File details

Details for the file PyMailService-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: PyMailService-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for PyMailService-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 33de0163efef32fd44a2df708be8e64e0eee5bcb98a4475c31ed39f40219fe1a
MD5 41a74bfe9e840079f8841ce4b336f06c
BLAKE2b-256 605dd3fecc741f95de9b3ead7631e5af3d8f3a99fc3fbf79b895ae9339598e5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page