ETNyx
import threading
import random
import string
import time
import os
MAILCOW_API_URL = "not for you ;)"
API_KEY = "neither is this"
DOMAIN1 = "imlittledoo.xyz"
DOMAIN2 = "vaultifyservices.xyz"
name_lock = threading.Lock()
# ==== Read and manage names ====
def extract_name():
with name_lock:
if not os.path.exists("names.txt"):
return None
with open("names.txt", "r") as f:
lines = [line.strip() for line in f if line.strip()]
if not lines:
return None
name = random.choice(lines)
lines.remove(name)
with open("names.txt", "w") as f:
for line in lines:
f.write(line + "\n")
return name
# ==== Random password generator (Mailcow-compatible) ====
def generate_password(length=12):
if length < 8:
length = 8
lower = string.ascii_lowercase
upper = string.ascii_uppercase
digits = string.digits
special = "!@#$%^&*()-_=+" # Mailcow-safe special characters
password = [
random.choice(lower),
random.choice(upper),
random.choice(digits),
random.choice(special)
]
all_chars = lower + upper + digits + special
password += random.choices(all_chars, k=length - 4)
random.shuffle(password)
return ''.join(password)
# ==== Create mailbox via API ====
def create_mailbox(name, domain):
password = generate_password()
payload = {
"local_part": name,
"domain": domain,
"password": password,
"active": True,
"quota": 1024 # MB
}
headers = {
"X-API-Key": API_KEY,
"Content-Type": "application/json"
}
try:
resp = requests.post(f"{MAILCOW_API_URL}/add/mailbox", json=payload, headers=headers)
resp.raise_for_status()
return password, resp.status_code, resp.text
except requests.RequestException as e:
print(f"❌ Error creating {name}@{domain}: {e}")
return None, None, None
# ==== Worker thread ====
def worker(domain, output_file):
while True:
name = extract_name()
if not name:
print("⚠️ No names left in names.txt. Thread stopping.")
break
password, sc, rp = create_mailbox(name, domain)
if password:
print(f"✅ Created: {name}@{domain} - {password} - {sc}")
os.makedirs(os.path.dirname(output_file), exist_ok=True)
with open(output_file, "a") as f:
f.write(f"{name}@{domain}:{password}\n")
time.sleep(0.5)
# ==== Main ====
if __name__ == "__main__":
thread_count = int(input("How many threads? "))
choice = int(input("1 for imlittledoo.xyz, 2 for vaultifyservices.xyz: "))
domain = DOMAIN1 if choice == 1 else DOMAIN2
output_file = f"output/{domain.replace('.', '_')}_mails.txt"
threads = []
for _ in range(thread_count):
t = threading.Thread(target=worker, args=(domain, output_file))
t.start()
threads.append(t)
for t in threads:
t.join()
print("✅ Mailbox creation complete.")
oh, nevermind, it worked. i missed some stuff in the payload. thanks anyways <3