From c5f78fd5e388fd1d678cafb810e50cb08371d1f5 Mon Sep 17 00:00:00 2001 From: bl4d3rvnner7 <136976682+bl4d3rvnner7@users.noreply.github.com> Date: Sun, 18 May 2025 01:42:56 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=A7=20SMTP=20Checker=20v1.3=20(2024)?= =?UTF-8?q?=20=F0=9F=93=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ⚙️ Setup: 1️⃣ Create a text-file and name it whatever you want 2️⃣ Put your SMTPs inside, else copy results SMTP file and make sure you use following format: host|port|user|pass 3️⃣ Install Python (If not installed) Direct installer : https://www.python.org/ftp/python/3.9.2/python-3.9.2-amd64.exe Linux: sudo apt install python3 Usage: python3 smtp.py (Linux) py smtp.py (Windows) 1️⃣ Enter textfile name 2️⃣ Enter your email 2️⃣ Enter threads (5 are ok) ♦️ FEATURES ▪️Open Source ▪️No Backdoors ▪️No Trojan/Virus ▪️Successfully sent will be saved as "good.txt" ▪️Fast checking --- smtp.py | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 smtp.py diff --git a/smtp.py b/smtp.py new file mode 100644 index 0000000..5320d5b --- /dev/null +++ b/smtp.py @@ -0,0 +1,93 @@ +import smtplib +import ssl +import platform +import socket +import colorama +import os +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText +from concurrent.futures import ThreadPoolExecutor +colorama.init() + +def clear(): + if platform == "linux": + os.system('clear') + else: + os.system('cls') + + +class SMTPChecker: + def __init__(self): + self.banner = """\x1b[34;1m███████╗███╗ ███╗████████╗██████╗ \x1b[31;1m ██████╗██╗ ██╗███████╗ ██████╗██╗ ██╗\n\x1b[34;1m██╔════╝████╗ ████║╚══██╔══╝██╔══██╗ \x1b[31;1m ██╔════╝██║ ██║██╔════╝██╔════╝██║ ██╔╝\n\x1b[34;1m███████╗██╔████╔██║ ██║ ██████╔╝ \x1b[31;1m ██║ ███████║█████╗ ██║ █████╔╝ \n\x1b[34;1m╚════██║██║╚██╔╝██║ ██║ ██╔═══╝ \x1b[31;1m ██║ ██╔══██║██╔══╝ ██║ ██╔═██╗ \n\x1b[34;1m███████║██║ ╚═╝ ██║ ██║ ██║ \x1b[31;1m ╚██████╗██║ ██║███████╗╚██████╗██║ ██╗\n\x1b[34;1m╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ \x1b[31;1m ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═════╝╚═╝ ╚═╝\n\n\n\t\t\t\x1b[34m | \x1b[37m@scarlettaowner \x1b[34m| \x1b[37mv1.3 \x1b[34m|\n\t\t\t\x1b[34m | \x1b[37mSCARLETTA \x1b[34m| \x1b[37mTOOLS \x1b[34m|\n\x1b[0m\n """ + self.smtp = "" + self.receiver = "" + self.threads = 5 + self.context = ssl._create_unverified_context() + def clear(self): + os.system('cls' if os.name == 'nt' else 'clear') + + def save_valid(self, i): + with open('good.txt', 'a+') as file: + file.write(i+"\n") + + def create_message(self, smtp): + host, port, user, pssw = smtp.split('|') + return f"""

📧 SCARLETTA SMTP CHECKER 📧


SMTP Works



Host => {host}
Port => {port}
User => {user}
Pass => {pssw}
Mailer Format =>{host}|{port}|{user}|{pssw}



Made By @f4c3r100

\r\n""".format(host=host, port=port, user=user, pssw=pssw, smtp=smtp) + + def send_email(self, smtp, receiver): + host, port, user, pssw = smtp.split('|') + message = self.create_message(smtp) + + msg = MIMEMultipart('alternative') + msg['Subject'] = "📧 SMTP CHECKER | SCARLETTA 📧" + msg['From'] = user + msg['To'] = receiver + eee = MIMEText(message, 'html') + msg.attach(eee) + try: + print(f"\n\x1b[37m[\x1b[33m-\x1b[37m] Attempting to connect to SMTP server: \x1b[33m{host}\x1b[37m:\x1b[33m{port} with user \x1b[33m{user}\x1b[0m") + if port == "465": + smtp_server = smtplib.SMTP_SSL(host, port, context=self.context) + else: + smtp_server = smtplib.SMTP(host, port) + smtp_server.starttls(context=self.context) + smtp_server.login(user, pssw) + smtp_server.sendmail(msg['From'], msg['To'], msg.as_string()) + smtp_server.quit() + print(f"\x1b[37m[\x1b[32m*\x1b[37m] \x1b[32mEmail successfully sent to {receiver} using {host}:{port}\x1b[0m") + self.save_valid(smtp) + except smtplib.SMTPAuthenticationError: + print(f"\x1b[37m[\x1b[31m!\x1b[37m] \x1b[31mAuthentication failed for {user} on {host}:{port}\x1b[0m") + except smtplib.SMTPConnectError: + print(f"\x1b[37m[\x1b[31m!\x1b[37m] \x1b[31mFailed to connect to {host}:{port}\x1b[0m") + except smtplib.SMTPException as e: + print(f"\x1b[37m[\x1b[31m!\x1b[37m] \x1b[31mSMTP error occurred: {e}\x1b[0m") + except socket.gaierror as e: + print(f"\x1b[37m[\x1b[31m!\x1b[37m] \x1b[31mSocker error occurred: {e}\x1b[0m") + except Exception as e: + print(f"\x1b[37m[\x1b[31m!\x1b[37m] \x1b[31mOther error occurred: {e}\x1b[0m") + def main(self): + self.clear() + print(self.banner) + self.smtps = input("\x1b[37m[\x1b[36mSCARLETTA \x1b[37m| \x1b[36mSMTP\x1b[37m] Input your SMTPs \x1b[37m(\x1b[35mf.e smtp.txt\x1b[37m): ") + self.receiver = input("\x1b[37m[\x1b[36mSCARLETTA \x1b[37m| \x1b[36mSMTP\x1b[37m] Your Email \x1b[37m(\x1b[35mf.e test@gmx.de\x1b[37m): ") + threads = input("\x1b[37m[\x1b[36mSCARLETTA \x1b[37m| \x1b[36mSMTP\x1b[37m] Input your Threads \x1b[37m(\x1b[35mf.e 10\x1b[37m): ") + + if os.path.exists(self.smtps): + with open(self.smtps, "r") as smtp_file: + smtp_list = smtp_file.readlines() + if int(threads) >= len(smtp_list): + self.threads = len(smtp_list) + elif int(threads) >= 30: + self.threads = 30 + else: + self.threads = threads + with ThreadPoolExecutor(max_workers=int(self.threads)) as executor: + futures = [executor.submit(self.send_email, smtp.strip(), self.receiver) for smtp in smtp_list] + else: + print(f"\x1b[37m[\x1b[31m!\x1b[37m] \x1b[31mError, path {self.smtps} does not exists.\x1b[0m") + + +if __name__ == '__main__': + checker = SMTPChecker() + checker.main() \ No newline at end of file