A professional email marketing tool built with Python and PyQt5. DigitalGuards Mailer provides a robust and user-friendly interface for managing email campaigns with support for multiple SMTP servers, optional proxy support, and advanced delivery controls.
- Multiple SMTP Support: Configure and rotate between multiple SMTP servers
- Optional Proxy Support: Additional layer of connection privacy if needed (not required for standard email operations)
- Rate Limiting: Configurable daily and hourly sending limits
- Email Customization:
- HTML/Plain Text support
- Custom sender name and reply-to addresses
- CC/BCC functionality
- File attachments
- Bulk Email Management: Import recipient lists from TXT, CSV, or Excel files
The application implements a smart SMTP server rotation system that helps maintain high deliverability rates and optimal email sending performance:
- Configurable Email Limits: Set maximum emails per SMTP server
- Smart Rotation: Automatically switches servers based on usage
- Health-Based Selection: Prioritizes healthy, performing servers
- Automatic Failover: Switches to backup servers when needed
- Error Tracking:
- Monitors consecutive failures
- Tracks error rates per server
- Records performance metrics
- Automatic Recovery:
- 15-minute cooldown for problematic servers
- Automatic server recovery after cooldown
- Smart fallback to best-performing servers
- Usage Statistics:
- Tracks emails sent per server
- Monitors success rates
- Records response times
- Adaptive Routing:
- Automatically adjusts to server performance
- Balances load across available servers
- Optimizes delivery success rates
- Smart Queue Management:
- Intelligent SMTP rotation
- Configurable emails per server
- Built-in delay controls
- Progress Tracking:
- Real-time sending progress
- Detailed logging
- Status updates
- Error Handling:
- SMTP connection testing
- Delivery status tracking
- Comprehensive error reporting
- Modern Design: Clean and intuitive interface
- Theme Support: Switch between light and dark themes
- Responsive Layout: Adapts to different window sizes
- Tab Organization:
- Main sending controls
- Email list management
- Proxy settings (optional)
- Live logging
- Clone the repository:
git clone https://github.com/digitalguards/dgmailer.git
cd dgmailer
- Create a virtual environment (optional but recommended):
python -m venv mailer
source mailer/bin/activate # On Windows: mailer\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Run the application:
python dgmailer.py
- Click "Add SMTP Server" in the main tab
- Enter your SMTP server details:
- Server address
- Port
- Username
- Password
- TLS mode
- Test the connection using the "Test" button
- Fill in the email details:
- Sender address
- Sender name (optional)
- Reply-to address (optional)
- CC/BCC recipients (optional)
- Enter your email subject and body
- Choose between HTML or plain text format
- Add attachments if needed
- Navigate to the "Email List" tab
- Either:
- Enter email addresses manually (one per line)
- Click "Load from File" to import from TXT/CSV/Excel
- Use "Validate Emails" to check the format of addresses
- Add multiple SMTP servers through the UI
- Set "Emails per SMTP" value in the control panel
- The system will automatically:
- Rotate servers based on the email limit
- Monitor server health and errors
- Apply cooldown periods when needed
- Select the best performing servers
While not required for standard email operations (as SMTP servers handle the actual email sending), proxies can be used if additional connection privacy is needed:
- Go to the "Proxy Settings" tab
- Enable "Use Proxies"
- Enter proxy servers (one per line) in host:port format
Note: Proxies only affect the connection between your client and the SMTP server. They do not impact the actual email delivery or the IP address that recipients see (which will be your SMTP server's IP).
- Click "Delivery Options" to configure:
- Sending frequency
- Daily limits
- Hourly limits
- Set emails per SMTP server in the main control panel
- Review all settings
- Click "Start" to begin sending
- Use Pause/Resume/Stop controls as needed
- Monitor progress in the status bar and log tab
The system provides detailed monitoring through:
- Real-time status updates
- Progress bar showing overall completion
- Detailed logs showing:
- Email delivery status
- SMTP server rotations
- Error messages
- Performance metrics
To maintain high deliverability rates:
-
SMTP Server Configuration:
- Use reputable SMTP providers
- Configure proper SPF, DKIM, and DMARC records
- Monitor server reputation
-
Email Content:
- Use proper HTML formatting
- Include text alternatives
- Follow anti-spam guidelines
-
Sending Patterns:
- Use appropriate rate limits
- Implement gradual sending increases
- Monitor bounce rates
-
List Management:
- Keep lists clean and updated
- Remove bounced addresses
- Honor unsubscribe requests
We welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch:
git checkout -b feature/AmazingFeature
- Install development dependencies:
pip install -r requirements-dev.txt
- Make your changes
- Run tests:
python -m pytest
- Commit your changes:
git commit -m 'Add some AmazingFeature'
- Push to the branch:
git push origin feature/AmazingFeature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue if your problem isn't already listed
- Visit our website for more information
- Contact us at [email protected]
Made with ❤️ by DigitalGuards