π Python Email Verifier GUI App | Validate Emails with SMTP | FuzzuTech Tool
Demo :
Click Video πππ
Features :
Build your own hacker-style Email Validator using Python. This app verifies if an email exists using SMTP — packed with GUI, threading, and clean UI via customtkinter. Perfect for developers & security tools!
Code :
# email_validator_gui.py
import customtkinter as ctk
from tkinter import messagebox
import smtplib
import socket
import threading
import requests
from PIL import Image, ImageTk
import io
# Configure CTk
ctk.set_appearance_mode("System")
ctk.set_default_color_theme("blue")
app = ctk.CTk()
app.title("Fuzzu Email Validator & Verifier")
app.geometry("500x600")
# Load Icon from OpenAI DALL·E (you can replace this with local file or API)
def get_dalle_image(prompt):
try:
response = requests.get("https://placehold.co/100x100/png", stream=True)
img_data = response.content
image = Image.open(io.BytesIO(img_data))
return ctk.CTkImage(light_image=image, size=(100, 100)) # ✅ fixed here
except:
return None
icon_image = get_dalle_image("email icon")
# Components
if icon_image:
icon_label = ctk.CTkLabel(app, image=icon_image, text="")
icon_label.pack(pady=10)
ctk.CTkLabel(app, text="Enter Email to Validate", font=("Arial", 18)).pack(pady=10)
email_entry = ctk.CTkEntry(app, width=350, font=("Arial", 16))
email_entry.pack(pady=5)
result_label = ctk.CTkLabel(app, text="", text_color="green", font=("Arial", 14))
result_label.pack(pady=20)
# Email Verifier Function
def verify_email(email):
try:
domain = email.split('@')[1]
mx_record = f"mail.{domain}"
server = smtplib.SMTP()
server.set_debuglevel(0)
server.connect(mx_record)
server.helo(server.local_hostname)
server.mail('verify@fuzzutech.com')
code, message = server.rcpt(email)
server.quit()
if code == 250:
return True, "✅ Email is valid!"
else:
return False, "❌ Invalid Email Address"
except Exception as e:
return False, f"❌ Error: {str(e)}"
# Threading Handler
def handle_verification():
email = email_entry.get().strip()
if not email:
messagebox.showerror("Input Error", "Please enter an email address.")
return
result_label.configure(text="Checking...", text_color="orange")
def process():
valid, message = verify_email(email)
result_label.configure(text=message, text_color="green" if valid else "red")
threading.Thread(target=process).start()
verify_btn = ctk.CTkButton(app, text="Verify Email", command=handle_verification, font=("Arial", 16), width=200)
verify_btn.pack(pady=10)
# Run App
app.mainloop()
Comments
Post a Comment