A simple yet powerful desktop application built with Python and Tkinter for sending HTML-formatted emails in bulk through Gmail SMTP.
- π¬ Bulk email delivery
- π¨ Beautiful HTML email templates
- βοΈ Auto-saving configuration
- π Custom subject and description
- π Website & Telegram button support
- β± Adjustable sending delay
- π Live sending status updates
- π Start / Stop controls
- π Queue-based email processing
- β Duplicate tracking with sent history
The application provides a graphical interface where you can:
- Configure SMTP credentials
- Edit email content
- Set website and Telegram links
- Choose send count
- Monitor sending progress in real time
.
βββ main.py
βββ config.json
βββ data.txt
βββ sended.txt
βββ README.md
| File | Description |
|---|---|
main.py |
Main application |
config.json |
Saved configuration |
data.txt |
Email queue |
sended.txt |
Sent email records |
git clone https://github.com/rebeccamice2002/bulkmail.git
cd bulkmailpip install tkTkinter is included by default in most Python installations.
To use Gmail SMTP:
- Go to your Gmail Account Settings.
- Enable Two-Factor Authentication.
- Generate an App Password.
- Use:
SMTP Server: smtp.gmail.com
Port: 587
- Enter:
Sender Email
App Password
inside the application.
Add recipient emails to:
data.txt
Example:
user1@example.com
user2@example.com
user3@example.com
Each line represents one recipient.
The application generates responsive HTML emails with:
- Custom title
- Description section
- Website button
- Telegram button
- Styled modern layout
Example:
π― Your Title
Your custom description...
[π Visit Website]
[π¬ Join Telegram]Load Emails
β
Validate Address
β
Generate HTML
β
Send via Gmail SMTP
β
Save to sended.txt
β
Remove from Queue
| Status | Meaning |
|---|---|
| β | Email sent successfully |
| β | Sending failed |
| βΉ | Sending stopped |
| π¬ | Sending in progress |
- Python 3
- Tkinter
- SMTP
- MIMEText
- Threading
- JSON Configuration
This application stores SMTP credentials and other settings inside config.json.
If you plan to:
- Fork this project
- Push it to GitHub
- Share the source code publicly
make sure your personal config.json is not included in the repository.
A typical .gitignore entry would be:
config.jsonBefore publishing, remove or replace any:
- Email addresses
- App passwords
- SMTP credentials
- Personal links
with placeholder values.
Example:
{
"sender_email": "your-email@gmail.com",
"app_password": "your-app-password"
}This project is provided for educational purposes.
Users are responsible for complying with:
- Gmail Terms of Service
- Local anti-spam regulations
- Recipient consent requirements
Pull requests and improvements are welcome.
If you find a bug or have a feature suggestion, feel free to open an issue.
Made with β Python & Tkinter