Debugging
Contributions Welcome!
Please contribute your solutions to help the community
Enable Verbose Debugging Output
You may find it useful to set LOG_LEVEL
environment variable.
Invalid Username or Password
-
Shell into the container:
docker exec -it <my-container> bash
-
Check log files in
/var/log/mail
could not find any mention of incorrect logins here neither in the dovecot logs. -
Check the supervisors logs in
/var/log/supervisor
. You can find the logs for startup of fetchmail, postfix and others here - they might indicate problems during startup. -
Make sure you set your hostname to
mail
or whatever you specified in yourdocker-compose.yml
file or else your FQDN will be wrong.
Installation Errors
During setup, if you get errors trying to edit files inside of the container, you likely need to install vi
:
sudo su
docker exec -it <my-container> apt-get install -y vim
Testing Connection
I spent HOURS trying to debug "Connection Refused" and "Connection closed by foreign host" errors when trying to use telnet to troubleshoot my connection. I was also trying to connect from my email client (macOS mail) around the same time. Telnet had also worked earlier, so I was extremely confused as to why it suddenly stopped working. I stumbled upon fail2ban.log
in my container. In short, when trying to get my macOS client working, I exceeded the number of failed login attempts and fail2ban put dovecot and postfix in jail! I got around it by whitelisting my ipaddresses (my ec2 instance and my local computer)
sudo su
docker exec -it mailserver bash
cd /var/log
cat fail2ban.log | grep dovecot
# Whitelist IP addresses:
fail2ban-client set dovecot addignoreip <server ip> # Server
fail2ban-client set postfix addignoreip <server ip>
fail2ban-client set dovecot addignoreip <client ip> # Client
fail2ban-client set postfix addignoreip <client ip>
# This will delete the jails entirely - nuclear option
fail2ban-client stop dovecot
fail2ban-client stop postfix
Sent email is never received
Some hosting provides have a stealth block on port 25. Make sure to check with your hosting provider that traffic on port 25 is allowed
Common hosting providers known to have this issue: