Skip to content

# Debugging

Contributions Welcome!

Please contribute your solutions to help the community

## Enable Verbose Debugging Output

You may find it useful to enable the `DMS_DEBUG` environment variable.

## Invalid Username or Password

1. Shell into the container:

       docker exec -it <my-container> bash

2. Check log files in `/var/log/mail` could not find any mention of incorrect logins here neither in the dovecot logs.

3. 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.

4. Make sure you set your hostname to `mail` or whatever you specified in your `docker-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 -ti mail 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:

- Azure
- AWS EC2

Back to top