- Друг форума
- Программист
- Автор темы
- Администратор
- Модер.
- Команда форума
- #1
Для работы нужно:
Скачать: Посмотреть вложение main.py
pip install telebot
Код:
import telebot
import requests
import json
import time
import html
TOKEN = 'сюда свой токен'
bot = telebot.TeleBot(TOKEN)
user_emails = {}
user_last_message_id = {}
def get_temp_email():
url = 'https://www.1secmail.com/api/v1/?action=genRandomMailbox&count=1'
response = requests.get(url)
if response.status_code == 200:
email = json.loads(response.text)[0]
return email
return None
def check_email_inbox(email):
login, domain = email.split('@')
url = f'https://www.1secmail.com/api/v1/?action=getMessages&login={login}&domain={domain}'
response = requests.get(url)
if response.status_code == 200:
messages = json.loads(response.text)
return messages
return []
def get_message_content(email, message_id):
login, domain = email.split('@')
url = f'https://www.1secmail.com/api/v1/?action=readMessage&login={login}&domain={domain}&id={message_id}'
response = requests.get(url)
if response.status_code == 200:
message = json.loads(response.text)
return message
return None
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_sticker(message.chat.id, 'CAACAgEAAxkBAAEpLcxm2dW5AS4WVB8PTRVshB2g1KNC5QACLQEAAjgOghHg_AlwrsI5zzYE')
welcome_text = (
"? <b>Добро пожаловать!</b>\n"
"? <i>Этот бот поможет вам получить временную почту</i>.\n"
"? Для начала использования нажмите на кнопку ниже ?"
)
email = get_temp_email()
if email:
user_emails[message.chat.id] = email
user_last_message_id[message.chat.id] = None
markup = telebot.types.InlineKeyboardMarkup()
btn_change = telebot.types.InlineKeyboardButton(text="? Сменить почту", callback_data="change_email")
btn_info = telebot.types.InlineKeyboardButton(text="⚜ Информация", callback_data="info")
markup.add(btn_change, btn_info)
bot.send_message(
message.chat.id,
welcome_text,
parse_mode='HTML',
reply_markup=markup
)
email_message = f"? <b>Ваша временная почта:</b> <code>{email}</code>\n\n"
bot.send_message(message.chat.id, email_message, parse_mode='HTML')
else:
bot.send_message(message.chat.id, "❗ <b>Ошибка при получении почты</b>.", parse_mode='HTML')
@bot.callback_query_handler(func=lambda call: True)
def callback_query(call):
if call.data == "change_email":
new_email = get_temp_email()
if new_email:
user_emails[call.message.chat.id] = new_email
user_last_message_id[call.message.chat.id] = None
bot.send_message(call.message.chat.id, f"? <b>Ваша новая временная почта:</b> <code>{new_email}</code>", parse_mode='HTML')
else:
bot.send_message(call.message.chat.id, "❗ <b>Ошибка при смене почты</b>.", parse_mode='HTML')
elif call.data == "info":
info_message = (
"⚜ <b>Информация о боте</b>:\n"
"Вы можете использовать его для быстрого получения почты, без необходимости регистрироваться на сайтах."
"Данный бот полностью бесплатный, если вы хотите получать письма моментально то советуем оплатить подписку - 39₽"
)
bot.send_message(call.message.chat.id, info_message, parse_mode='HTML')
def check_for_new_emails():
while True:
for chat_id, email in user_emails.items():
messages = check_email_inbox(email)
if messages:
last_message = messages[0]
last_message_id = last_message['id']
if user_last_message_id.get(chat_id) != last_message_id:
user_last_message_id[chat_id] = last_message_id
message_content = get_message_content(email, last_message_id)
email_from = html.escape(message_content['from'])
email_subject = html.escape(message_content['subject'])
email_body = html.escape(message_content['textBody'])
notification = (
f"? <b>Новое письмо на почту:</b> <code>{email}</code>\n"
f"? <b>От кого:</b> {email_from}\n"
f"? <b>Тема:</b> {email_subject}\n\n"
f"? <b>Содержание:</b>\n{email_body}"
)
bot.send_message(chat_id, notification, parse_mode='HTML')
time.sleep(5) # Проверка почты (минимум 5 сек)
import threading
email_check_thread = threading.Thread(target=check_for_new_emails)
email_check_thread.start()
bot.polling(none_stop=True)
Скачать: Посмотреть вложение main.py