Postfix: fatal: bind 0.0.0.0 port 25: Address already in use
Postfix cannot start its SMTP listener because another process (often Sendmail, Exim or a second Postfix) already uses port 25.
fatal: bind 0.0.0.0 port 25: Address already in usepostfix/master: fatal: bind 0.0.0.0 port 25: Address already in usepostfix master bind port 25 address already in useAddress already in use port 25cannot bind to port 25 Meaning
Only one program can listen on a port. Find the owner with ss -ltnp and stop or disable it. Common after installing Postfix on a system with Exim (Debian) or Sendmail (CentOS), or after a crashed master process left a stale lock.
Common causes
- Exim, Sendmail or another MTA already running
- A previous Postfix master process still alive
- Docker container publishing port 25
- Mail filter proxy bound to 25
- Stale PID file
⚡ Quick fix
sudo ss -ltnp | grep ':25 'to find the process- Disable the other MTA (
systemctl disable --now exim4) - Start Postfix again and check
postfix check
Detailed fix by platform
Linux
sudo ss -ltnp | grep ':25 'andsudo systemctl disable --now exim4 sendmail; sudo systemctl restart postfix
How to diagnose
- Owner — Which process holds the port?
- Services — Another MTA enabled?
- Check — postfix check clean?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- 421 4.7.0 Try again later (rate limited) SMTP: 421 4.7.0 Our system has detected an unusual rate of unsolicited mail originating from your IP address. Mail sent from your IP address has been temporarily rate limited
- 450 4.7.1 Greylisted, please try again later SMTP: 450 4.7.1 <user@example.com>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/example.com.html
- 451 4.3.0 Local error in processing SMTP: 451 4.3.0 Error: queue file write error / 451 Requested action aborted: local error in processing
Most viewed in Email / SMTP
Other ways to find it
Where this error sits
Origin: Network. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 4 Nov 2026