Cannot connect to pop3 or imap with Dovecot

20,313

The Unable to connect ... Connection refused message strongly suggests that Dovecot is not listening on port 110. Check that dovecot is actually running using

ps -A | grep dovecot

If so, check that it is listening on the POP port:

sudo lsof -i 4 -a -p $(ps -A | grep dovecot | awk '{ print $1 }')

If so, check that no firewall is in the way.

If it turns out that dovecot is not running or not listening on the POP port, then you have probably misconfigured dovecot. Examine the dovecot and system logs for errors. Examine dovecot's configuration as output by dovecot -n.

Most likely, you have misconfigured either the protocols directive or the the listen directive.

Share:
20,313

Related videos on Youtube

ComputerLocus
Author by

ComputerLocus

I enjoy helping people out as much as possible. I have struggled before with things and have gotten help. I want to pass on the knowledge I have been given to others.

Updated on September 18, 2022

Comments

  • ComputerLocus
    ComputerLocus over 1 year

    Connections are refused on my server. Note: I am trying to connect from localhost here.

    Command I'm trying to use to test:

    user@hostname:~$ telnet localhost pop3
    Trying ::1...
    Trying 127.0.0.1...
    telnet: Unable to connect to remote host: Connection refused
    

    Same error when I try with imap.

    The dovecot wiki suggests trouble shooting for the issue, however I have already tried the fixes. I have the protocols added in the config, and I have the listen option set to *. My config is below. I am not sure what is wrong? ## Dovecot configuration file

    # If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration
    
    # "doveconf -n" command gives a clean output of the changed settings. Use it
    # instead of copy&pasting files when posting to the Dovecot mailing list.
    
    # '#' character and everything after it is treated as comments. Extra spaces
    # and tabs are ignored. If you want to use either of these explicitly, put the
    # value inside quotes, eg.: key = "# char and trailing whitespace  "
    
    # Default values are shown for each setting, it's not required to uncomment
    # those. These are exceptions to this though: No sections (e.g. namespace {})
    # or plugin settings are added by default, they're listed only as examples.
    # Paths are also just examples with the real defaults being based on configure
    # options. The paths listed here are for configure --prefix=/usr
    # --sysconfdir=/etc --localstatedir=/var
    
    # Enable installed protocols
    !include_try /usr/share/dovecot/protocols.d/*.protocol
    protocols = pop3 pop3s imap imaps
    pop3_uidl_format = %08Xu%08Xv
    
    # A comma separated list of IPs or hosts where to listen in for connections.
    # "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
    # If you want to specify non-default ports or anything more complex,
    # edit conf.d/master.conf.
    #listen = *, ::
    
    # Base directory where to store runtime data.
    #base_dir = /var/run/dovecot/
    
    # Name of this instance. Used to prefix all Dovecot processes in ps output.
    #instance_name = dovecot
    
    # Greeting message for clients.
    #login_greeting = Dovecot ready.
    
    # Space separated list of trusted network ranges. Connections from these
    # IPs are allowed to override their IP addresses and ports (for logging and
    # for authentication checks). disable_plaintext_auth is also ignored for
    # these networks. Typically you'd specify your IMAP proxy servers here.
    #login_trusted_networks =
    
    # Sepace separated list of login access check sockets (e.g. tcpwrap)
    #login_access_sockets =
    
    # Show more verbose process titles (in ps). Currently shows user name and
    # IP address. Useful for seeing who are actually using the IMAP processes
    # (eg. shared mailboxes or if same uid is used for multiple accounts).
    #verbose_proctitle = no
    
    # Should all processes be killed when Dovecot master process shuts down.
    # Setting this to "no" means that Dovecot can be upgraded without
    # forcing existing client connections to close (although that could also be
    # a problem if the upgrade is e.g. because of a security fix).
    #shutdown_clients = yes
    
    # If non-zero, run mail commands via this many connections to doveadm server,
    # instead of running them directly in the same process.
    #doveadm_worker_count = 0
    # UNIX socket or host:port used for connecting to doveadm server
    #doveadm_socket_path = doveadm-server
    
    # Space separated list of environment variables that are preserved on Dovecot
    # startup and passed down to all of its child processes. You can also give
    # key=value pairs to always set specific settings.
    #import_environment = TZ
    
    ##
    ## Dictionary server settings
    ##
    
    # Dictionary can be used to store key=value lists. This is used by several
    # plugins. The dictionary can be accessed either directly or though a
    # dictionary server. The following dict block maps dictionary names to URIs
    # when the server is used. These can then be referenced using URIs in format
    # "proxy::<name>".
    
    • ComputerLocus
      ComputerLocus over 10 years
      @zwets Nothing is returned when I run that, but when I run ps -A | grep dovecot it seems to to report that it is running. See output: paste.jhvisser.com/…
    • ComputerLocus
      ComputerLocus over 10 years
      @zwets It looks like the listen flag was actually commented out. I uncommented it and then did sudo dovecot reload and now telnet localhost 110 was able to connect. Both of your commands reported nothing back. I think it is safe to say that this is fixed. If you want you can make this "uncomment listen" an answer and I can accept it. You did help me here finding the problem indirectly.