На связи канал PythonZ, и сегодня мы вам покажем наш модуль, который позволит без ограничений взаимодействовать с временной почтой.
Python - язык программирования, который подходит почти для любых целей. Одна из них - автоматизация. Наша библиотека как раз создана для автоматизации некоторых задач.
Установка
Для установки модуля, достаточно ввести в консоль:
python3 -m pip install 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)
Теперь создаем функцию прослушивания и используя либу 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. Подпишитесь, чтобы не пропускать новые статьи. Всем до связи!