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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7a0d0288aa1de1100db899d7bcff807e7e55878af8b068c87504cafb1663f2d
|
|
| MD5 |
b10212f3836aa4557c7628326ac6b8a8
|
|
| BLAKE2b-256 |
589621afc84caa7709102a780822e28a5d7b38b33a0e5d37a8c08e740328d8c3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33de0163efef32fd44a2df708be8e64e0eee5bcb98a4475c31ed39f40219fe1a
|
|
| MD5 |
41a74bfe9e840079f8841ce4b336f06c
|
|
| BLAKE2b-256 |
605dd3fecc741f95de9b3ead7631e5af3d8f3a99fc3fbf79b895ae9339598e5a
|