Сообщение от
Azller Lollison
добавь прокси (в инете и на гитхабе достаточно много автообновляемых списков бесплатных проксей, только не подключай хттп(с) прокси)
и еще было бы круто бота в телеграмм сделать, чтобы каждый мог поставить себе на сервак и юзать в телеге, было бы оч удобно
если замутишь прокси и бота - даже себе поставлю
могу добавить эта в тг
для тг:
[CODE]
import
telebot
import
random
import
time
import
os
import
requests
import
logging
logging
.
basicConfig
(
filename
=
'errors.log'
,
level
=
logging
.
ERROR
)
TOKEN
=
'факин токен из @botfather хер баля'
bot
=
telebot
.
TeleBot
(
TOKEN
)
sym
=
"abcdefghijklmnopqrstuvwxyz"
def
print_banner
(
)
:
banner
=
"""
░█████╗░██╗░░░██ ████████╗░█████╗ ░░░░░░██████╗░██ █████╗░██████╗░
██╔══██╗██║░░░██ ╚══██╔══╝██╔══██ ░░░░░░██╔══██╗██ ╔════╝██╔════╝░
███████║██║░░░██ ░░░██║░░░██║░░██ █████╗██████╔╝██ ███╗░░██║░░██╗░
██╔══██║██║░░░██ ░░░██║░░░██║░░██ ╚════╝██╔══██╗██ ╔══╝░░██║░░╚██╗
██║░░██║╚██████╔ ░░░██║░░░╚█████╔ ░░░░░░██║░░██║██ █████╗╚██████╔╝
╚═╝░░╚═╝░╚═════╝ ░░░╚═╝░░░░╚════╝ ░░░░░░╚═╝░░╚═╝╚═ ═════╝░╚═════╝░
███╗░░░███╗░████ ╗░██╗██╗░░░░░░░░ ███████╗███╗░░░█ ██╗
████╗░████║██╔══ █╗██║██║░░░░░░░░ ══██╔══╝████╗░██ ██║
██╔████╔██║█████ █║██║██║░░░░░░░░ ░░██║░░░██╔████╔ ██║
██║╚██╔╝██║██╔══ █║██║██║░░░░░░░░ ░░██║░░░██║╚██╔╝ ██║
██║░╚═╝░██║██║░░ █║██║███████╗██╗ ░░██║░░░██║░╚═╝░ ██║
╚═╝░░░░░╚═╝╚═╝░░ ═╝╚═╝╚══════╝╚═╝ ░░╚═╝░░░╚═╝░░░░░ ╚═╝
"""
return
banner
def
convert_accounts_format
(
)
:
if
not
os
.
path
.
exists
(
"accounts.txt"
)
:
return
"[❌] Файл accounts.txt не найден!"
with
open
(
"accounts.txt"
,
"r"
,
encoding
=
"utf-8"
)
as
f
:
accounts
=
[
line
.
strip
(
)
for
line
in
f
if
":"
in
line
]
if
not
accounts
:
return
"[❌] В accounts.txt нет аккаунтов для преобразования!"
formatted_accounts
=
[
]
for
account
in
accounts
:
email
,
password
=
account
.
split
(
":"
)
formatted_accounts
.
append
(
f"Mail:{email}\nPassword:{password}\n\n"
)
with
open
(
"accounts_format.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
f
:
f
.
writelines
(
formatted_accounts
)
return
f"\n✅ Преобразование завершено! Сохранено{len(accounts)}аккаунто в accounts_format.txt."
def
check_accounts
(
)
:
if
not
os
.
path
.
exists
(
"accounts.txt"
)
:
return
"[❌] Файл accounts.txt не найден!"
with
open
(
"accounts.txt"
,
"r"
,
encoding
=
"utf-8"
)
as
f
:
accounts
=
[
line
.
strip
(
)
for
line
in
f
.
readlines
(
)
[
4
:
]
if
":"
in
line
]
if
not
accounts
:
return
"[❌] В accounts.txt нет аккаунтов для проверки!"
valid_accounts
=
[
]
invalid_accounts
=
[
]
result_message
=
f"\n🔍 Начинаем проверку{len(accounts)}аккаунтов. ..\n"
for
index
,
account
in
enumerate
(
accounts
,
start
=
1
)
:
email
,
password
=
account
.
split
(
":"
)
result_message
+=
f"[{index}/{len(accounts)}] Проверка:{email}\n"
try
:
response
=
requests
.
post
(
"https://api.mail.tm/token"
,
json
=
{
"address"
:
email
,
"password"
:
password
}
,
timeout
=
10
)
if
response
.
status_code
==
200
:
result_message
+=
f"[✅] Валидный аккаунт:{email}\n"
valid_accounts
.
append
(
account
)
else
:
result_message
+=
f"[❌] Невалидный аккаунт:{email}\n"
invalid_accounts
.
append
(
account
)
except
requests
.
exceptions
.
RequestException
as
e
:
result_message
+=
f"[⚠] Ошибка соединения:{e}. Ожидание 30 секунд...\n"
time
.
sleep
(
30
)
invalid_accounts
.
append
(
account
)
time
.
sleep
(
5
)
with
open
(
"valid.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
f
:
f
.
write
(
"\n"
.
join
(
valid_accounts
)
+
"\n"
)
with
open
(
"invalid.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
f
:
f
.
write
(
"\n"
.
join
(
invalid_accounts
)
+
"\n"
)
result_message
+=
"\n✅ Проверка завершена!\n"
result_message
+=
f"✔ Рабочие аккаунты:{len(valid_accounts)}\n"
result_message
+=
f"❌ Нерабочие аккаунты:{len(invalid_accounts)}\n"
return
result_message
def
register_account_v1
(
)
:
try
:
domain
=
requests
.
get
(
"https://api.mail.tm/domains"
,
timeout
=
10
)
.
json
(
)
[
"hydra:member"
]
[
0
]
[
"domain"
]
except
requests
.
exceptions
.
RequestException
as
e
:
return
f"Ошибка получения домена:{e}"
failed_attempts
=
0
result_message
=
""
while
True
:
login
=
""
.
join
(
random
.
choice
(
sym
)
for
_
in
range
(
random
.
randint
(
7
,
13
)
)
)
password
=
""
.
join
(
random
.
choice
(
sym
)
for
_
in
range
(
random
.
randint
(
7
,
13
)
)
)
try
:
response
=
requests
.
post
(
"https://api.mail.tm/accounts"
,
json
=
{
"address"
:
f"{login}@{domain}"
,
"password"
:
password
}
,
timeout
=
10
)
if
response
.
status_code
==
201
:
with
open
(
"accounts.txt"
,
"a"
,
encoding
=
"utf-8"
)
as
f
:
if
os
.
path
.
getsize
(
"accounts.txt"
)
==
0
:
f
.
write
(
"Аккаунты были зарегистрированы auto-reg.\n"
)
f
.
write
(
"Вход в аккаунты тут → → → https://mail.tm/ru/\n"
)
f
.
write
(
"Список аккаунтов:\n\n"
)
f
.
write
(
f"{login}@{domain}:{password}\n"
)
result_message
+=
f"[✅] Аккаунт зарегистрирован:{login}@{domain}\n"
failed_attempts
=
0
elif
response
.
status_code
==
429
:
result_message
+=
"[❌] Ошибка 429 (слишком много запросов). Ждем 60 секунд и пробуем снова...\n"
time
.
sleep
(
60
)
failed_attempts
+=
1
elif
response
.
status_code
==
500
:
result_message
+=
"[❌] Ошибка 500 (внутренняя ошибка сервера). Ждем 30 секунд и пробуем снова...\n"
time
.
sleep
(
30
)
failed_attempts
+=
1
else
:
result_message
+=
f"[❌] Ошибка:{response.status_code}, пропускаем аккаунт.\n"
failed_attempts
+=
1
if
failed_attempts
>=
3
:
result_message
+=
"[❌] Достигнут лимит попыток с ошибкой 500 или 429. Прекращаем создание аккаунтов.\n"
break
except
requests
.
exceptions
.
RequestException
as
e
:
result_message
+=
f"[⚠️] Ошибка соединения:{e}. Ждем 30 секунд...\n"
time
.
sleep
(
30
)
failed_attempts
+=
1
result_message
+=
f"[⏳] Ожидание{random.randint(10, 20)}секунд перед следующим аккаунтом...\n"
time
.
sleep
(
random
.
randint
(
10
,
20
)
)
return
result_message
def
register_account_v2
(
num_accounts
,
delay
)
:
try
:
domain
=
requests
.
get
(
"https://api.mail.tm/domains"
,
timeout
=
10
)
.
json
(
)
[
"hydra:member"
]
[
0
]
[
"domain"
]
except
requests
.
exceptions
.
RequestException
as
e
:
return
f"Ошибка получения домена:{e}"
failed_attempts
=
0
result_message
=
""
if
not
os
.
path
.
exists
(
"accounts.txt"
)
:
with
open
(
"accounts.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
f
:
f
.
write
(
"Список зарегистрированных аккаунтов:\n\n"
)
for
i
in
range
(
1
,
num_accounts
+
1
)
:
login
=
""
.
join
(
random
.
choice
(
sym
)
for
_
in
range
(
random
.
randint
(
7
,
13
)
)
)
password
=
""
.
join
(
random
.
choice
(
sym
)
for
_
in
range
(
random
.
randint
(
7
,
13
)
)
)
try
:
response
=
requests
.
post
(
"https://api.mail.tm/accounts"
,
json
=
{
"address"
:
f"{login}@{domain}"
,
"password"
:
password
}
,
timeout
=
10
)
if
response
.
status_code
==
201
:
with
open
(
"accounts.txt"
,
"a"
,
encoding
=
"utf-8"
)
as
f
:
if
os
.
path
.
getsize
(
"accounts.txt"
)
==
0
:
f
.
write
(
"Текст 1\n\n"
)
f
.
write
(
"Текст 2\n\n"
)
f
.
write
(
"Текст 3\n\n"
)
f
.
write
(
f"{login}@{domain}:{password}\n"
)
result_message
+=
f"[✅] [{i}/{num_accounts}] Аккаунт зарегистрирован:{login}@{domain}\n"
failed_attempts
=
0
elif
response
.
status_code
==
429
:
result_message
+=
"[❌] Ошибка 429 (слишком много запросов). Ждем 60 секунд и пробуем снова...\n"
time
.
sleep
(
60
)
failed_attempts
+=
1
elif
response
.
status_code
==
500
:
result_message
+=
"[❌] Ошибка 500 (внутренняя ошибка сервера). Ждем 30 секунд и пробуем снова...\n"
time
.
sleep
(
30
)
failed_attempts
+=
1
else
:
result_message
+=
f"[❌] Ошибка:{response.status_code}, пропускаем аккаунт.\n"
failed_attempts
+=
1
if
failed_attempts
>=
3
:
result_message
+=
"[❌] Достигнут лимит попыток с ошибкой 500 или 429. Прекращаем создание аккаунтов.\n"
break
except
requests
.
exceptions
.
RequestException
as
e
:
result_message
+=
f"[⚠] Ошибка соединения:{e}. Ждем 30 секунд...\n"
time
.
sleep
(
30
)
failed_attempts
+=
1
if
i
- /start — приветственное сообщение с баннером.
- /convert — преобразование аккаунтов из accounts.txt в accounts_format.txt.
- /check — проверка аккаунтов из accounts.txt.
- /register_v1 — автоматическая регистрация аккаунтов (версия 1).
- /register_v2 — настраиваемая регистрация аккаунтов
прокси надо? если да то какого типа