Freedom251 › Email Warmup Software
darkzwarmer

What darkzwarmer is
darkzwarmer is a free, open-source email warmup tool for domains and mailboxes its user owns and controls. It creates inboxes across user-provided domains, sends messages between inboxes on different domains, and replies to its own network’s messages after a random delay of 30 minutes to four hours. Mail from outsiders is ignored. Sending volume per inbox rises from 5 to 35 messages per day over 28 days, then stays at the configured steady-state level. Sends are randomized within a default 07:00–19:00 local window, with 2–8 minutes between consecutive sends from an inbox; weekends are paused. Outbound mail uses configurable SMTP, with Amazon SES, SMTP.com, Postmark, Mailgun, Brevo, and SendGrid listed as examples. Inbound mail can use IMAP or Resend. The Python runtime requires version 3.11 or later and stores state in SQLite; the project says it can resume after crashes or reboots and avoid duplicate replies. Setup requires at least two user-owned domains, an outbound SMTP provider, a way to receive mail, and an always-on machine or VPS. Windows unattended-operation scripts are described, while Linux and macOS users can use a process manager or terminal session.
Who it suits
darkzwarmer suits users who manage their own domains and mailboxes and can configure SMTP plus inbound mail. It is intended for a private network of inboxes rather than mail from outside senders.
What it does well
- Free and open source under the MIT license
- Configurable SMTP with several listed provider examples
- SQLite state supports resuming after crashes or reboots
- Windows, Linux, and macOS operation is described
What to know first
- Requires Python 3.11 or later
- Requires at least two user-owned domains
- Needs an always-on machine or VPS
Limits
Each inbox ramps from 5 to 35 messages per day over 28 days before holding at its configured steady-state level. A configurable per-inbox daily ceiling can limit sends, and provider rate or quota limits may cause failures.
Getting started
- Open the project website on GitHub.
- Prepare an always-on Windows, Linux, or macOS machine with Python 3.11 or later.
- Configure at least two domains you own and an outbound SMTP provider.
- Set up inbound mail through IMAP or Resend.
- Configure inbox counts, schedules, delays, steady-state volume, and any daily send ceiling.
- Run the process directly or use the provided Windows unattended-operation scripts or a Linux/macOS service manager.
Verdict
darkzwarmer automates warmup traffic among inboxes across domains that the user controls. Setup depends on multiple domains, mail delivery and receiving services, and a continuously available runtime.
Questions
Is darkzwarmer free?
Yes. It is free and open source under the MIT license.
What does it need to run?
It requires Python 3.11 or later, an always-on machine, at least two domains you control, outbound SMTP, and a way to receive mail.
Which operating systems does it support?
It supports Windows, Linux, and macOS. The project describes unattended-operation scripts for Windows and process-manager or terminal operation for Linux and macOS.
Which mail services can it use?
Outbound delivery uses configurable SMTP, with Amazon SES, SMTP.com, Postmark, Mailgun, Brevo, and SendGrid listed as examples. Incoming mail can use IMAP or Resend.
How does the warmup schedule work?
Per-inbox sending volume rises from 5 to 35 messages per day over 28 days, then stays at the configured steady-state level. Sends are randomized across a default 07:00–19:00 local window, weekends pause, and optional wave cohorts can add inboxes.
Does it email outside inboxes in its network?
No. It sends only between inboxes on different configured domains, replies to its own network’s messages, and ignores outsider mail.
Facts from darkzwarmer's own pages
- Controls
- Configuration includes inbox counts, sending windows, send delays, reply delays, steady-state volume, and an optional per-inbox daily send ceiling. · github.com, 7 Oct 2026
- Cross-domain sending
- Inboxes send to inboxes on other configured domains; same-domain pairs are not used. · github.com, 7 Oct 2026
- Cross-domain traffic
- Each inbox sends only to inboxes on other domains, and the tool does not use same-domain pairs. · github.com, 7 Oct 2026
- Expansion
- Optional wave cohorts can add inboxes automatically on a configured schedule, with new inboxes starting at Day 1. · github.com, 7 Oct 2026
- Inbound integrations
- Inbound mail can be received through IMAP or Resend; the Resend setup uses a Vercel webhook and an Upstash Redis queue. · github.com, 7 Oct 2026
- License and warranty
- The project is MIT-licensed and provided as-is without warranty. · github.com, 7 Oct 2026
- Operating systems
- The README describes unattended operation on Windows and running under process managers on Linux and macOS. · github.com, 7 Oct 2026
- Operating system support
- The README provides unattended-operation scripts for Windows and says Linux and macOS users can run the process under a service manager or terminal session. · github.com, 7 Oct 2026
- Purpose
- darkzwarmer generates inboxes across user-provided domains, sends warmup email between those inboxes, and replies after human-like delays. · github.com, 7 Oct 2026
- Replies
- The network waits a random 30 minutes to 4 hours before replying in-thread to its own messages, and ignores outsider mail. · github.com, 7 Oct 2026
- Reply behavior
- The tool replies to its own network’s messages after a random 30-minute to 4-hour delay and ignores outsider mail. · github.com, 7 Oct 2026
- Requirements
- It requires Python 3.11 or later, at least two user-owned domains for cross-domain traffic, an outbound SMTP provider, and a way to receive mail. · github.com, 7 Oct 2026
- Responsible use
- The maker says the tool only emails its own network and is intended for domains and mailboxes the user owns and controls. · github.com, 7 Oct 2026
- Runtime
- The project requires Python 3.11 or later and an always-on machine, and stores state in SQLite. · github.com, 7 Oct 2026
- Scheduling
- Sends are randomized across a default 07:00–19:00 local window, with 2–8 minutes of jitter between an inbox’s consecutive sends; weekends are paused. · github.com, 7 Oct 2026
- Security and credentials
- The README says secrets are supplied through environment variables, and identifies .env, catch-all credentials, and the SQLite database as git-ignored files. · github.com, 7 Oct 2026
- Security practices
- The Resend webhook verifies request signatures, while SMTP, Resend, Upstash, and IMAP credentials are configured locally and credential files are gitignored. · github.com, 7 Oct 2026
- Self-hosting
- The project describes itself as a Python runtime backed by SQLite that users run on an always-on machine or VPS. · github.com, 7 Oct 2026
- Sending integrations
- Outbound delivery uses configurable SMTP and the README lists Amazon SES, SMTP.com, Postmark, Mailgun, Brevo, and SendGrid as examples. · github.com, 7 Oct 2026
- SMTP integrations
- Outbound sending uses configurable SMTP; listed providers include Amazon SES, SMTP.com, Postmark, Mailgun, Brevo, and SendGrid. · github.com, 7 Oct 2026
- State and recovery
- SQLite stores runtime state, and the README says the tool resumes after crashes or reboots and prevents duplicate replies with a unique index. · github.com, 7 Oct 2026
- Usage limits
- A per-inbox daily send ceiling can be configured, and the README notes that provider rate or quota limits can cause send failures. · github.com, 7 Oct 2026
- Warmup ramp
- Per-inbox volume increases from 5 to 35 messages per day over 28 days, then stays at the steady-state level. · github.com, 7 Oct 2026
- Warmup schedule
- Per-inbox sending volume ramps from 5 to 35 messages per day over 28 days, then stays at the steady-state volume. · github.com, 7 Oct 2026
Where darkzwarmer stands on Freedom251
- Email Warmup Software#1 of 24