Найти тему

TempMailz - Временная почта в Python!

Оглавление

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

Python - язык программирования, который подходит почти для любых целей. Одна из них - автоматизация. Наша библиотека как раз создана для автоматизации некоторых задач.

Установка

Для установки модуля, достаточно ввести в консоль:

python3 -m pip install TempMailz
Установка TempMailz
Установка TempMailz

После этого вы сможете использовать библиотеку в вашем проекте.

Использование

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

Первые приготовления

from TempMailz import TempMailz as tmz
mail = tmz.TempMailz()

В этих строчках мы импортировали библиотеку и создали почтовый ящик. Ящик уже создан(имеет случайный адрес) и готов к получению сообщений. Узнать адрес ящика можно так:

mail.address
Узнаем адрес временного почтового ящика
Узнаем адрес временного почтового ящика

Если же вы хотите создать ящик со строго заданным адресом, воспользуйтесь таким синтаксисом:

mail = tmz.TempMailz(login="user", domain="1secmail.com")

Здесь, вместо user подставьте тот логин, который вам нужен. В примере выше, мы создадим такой ящик: user@1secmail.com

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

tmz.TempMailz.getDomainList()
Узнаем список доступных почтовых доменов
Узнаем список доступных почтовых доменов

Теперь, когда у нас есть ящик, мы можем отправлять на него сообщения. Получить список входящих сообщений можно при помощи такого метода:

mail.get_inbox()
Получаем список сообщений из ящика
Получаем список сообщений из ящика

Но как же нам получить сам текст сообщения? Для этого используем метод ниже, в него нужно подставить id, который мы получаем из предыдущего метода.

mail.get_msg(id_)
Читаем информацию о сообщении
Читаем информацию о сообщении

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

from TempMailz import TempMailz as tmz
mail = tmz.TempMailz()
input(f"Нажмите ENTER, когда отправите сообщение на адрес: {mail.address}")
for msg in mail.get_inbox:
print(mail.get_msg(msg["id"]))
Чтение сообщений из случайного почтового ящика
Чтение сообщений из случайного почтового ящика

Вывод сообщений в реальном времени

Давайте теперь сделаем так, чтобы сообщения сразу после поступления отображались на экране(в реальном времени). Более того, чтобы выводилась только нужная нам информация.

Для этого используем такой код:

from TempMailz import TempMailz as tmz
mail = tmz.TempMailz(login="user", domain="1secmail.com")
for msg in mail.listen():
print(msg)
Отображение новых сообщений в консоли
Отображение новых сообщений в консоли

Теперь, когда мы запустим код, все новые сообщения, отправленные на этот адрес, будут тут же отображены в консоли!

Итак, давайте сделаем так, чтобы сообщения выводились в приятном для нас виде:

for msg in mail.listen():
full_msg = mail.get_msg(msg["id"])
sender = full_msg["from"]
title = full_msg["subject"]
text = full_msg["textBody"]

print(f"FROM: {sender}\nTITLE: {title}\n\n{text}-------------------------------")
Приятный вид вывода сообщений в реальном времени
Приятный вид вывода сообщений в реальном времени

Итоговый код:

from TempMailz import TempMailz as tmz
mail = tmz.TempMailz(login="user", domain="1secmail.com")
for msg in mail.listen():
full_msg = mail.get_msg(msg["id"])
sender = full_msg["from"]
title = full_msg["subject"]
text = full_msg["textBody"]
print(f"FROM: {sender}\nTITLE: {title}\n\n{text}-------------------------------")

Создаем 10 ящиков одновременно

Когда мы имеем базовые навыки работы с данном библиотекой, давайте создадим 10 случайных временных почт, работающих одновременно.

Для этого используем библиотеку threading:

from TempMailz import TempMailz as tmz
from threading import Thread

Генерируем сразу 10 случайных ящиков:

for mal in range(10):
mail = tmz.TempMailz()
print(mail.address)
Сгенерировали сразу 10 ящиков
Сгенерировали сразу 10 ящиков

Теперь создаем функцию прослушивания и используя либу threading запускаем ее для каждого из адресов. В конце добавляем вечный цикл, чтобы программа не закрылась.

Вот такой код у нас получился в итоге:

from TempMailz import TempMailz as tmz
from threading import Thread

def listen(mail):
print(mail.address)
for msg in mail.listen():
full_msg = mail.get_msg(msg["id"])
sender = full_msg["from"]
title = full_msg["subject"]
text = full_msg["textBody"]

print(f"FROM: {sender}\nTO: {mail.address}\nSUBJECT: {title}\n\n{text}-------------------------------")

for mal in range(10):
mail = tmz.TempMailz()
Thread(target=listen, args=[mail]).start()

print("-------------------------------")

while True: pass
Итоговый код
Итоговый код

Заключение

При помощи такой библиотеки вы сможете автоматизировать создание нескольких аккаунтов на какой-либо платформе.

GITHUB: https://github.com/Zewsic/TempMailz

Спасибо за прочтение статьи, это был канал PythonZ. Подпишитесь, чтобы не пропускать новые статьи. Всем до связи!

Наука
7 млн интересуются