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()