Postfix and Dovecot not able to send or receive mail

Discussion in 'Server Operation' started by Fugee Ohu, Nov 21, 2021.

  1. Fugee Ohu

    Fugee Ohu New Member

    I found this error in /var/log/mail.log "dovecot Failed to establish relay connection in=0 out=22 (state=GREETING)" I haven't been able to solve by searching the error Hope someone can help This started after an upgrade
  2. Taleman

    Taleman Well-Known Member HowtoForge Supporter

    Upgrade of what?
    Please provide some context. What OS and what version, what version of dovecot, how was dovecot configured. Is that the only error in mail.log? Only error overall on that system?
    Just to make sure: This is not an ISPConfig system?
  3. Fugee Ohu

    Fugee Ohu New Member

    My mail server had been running ubuntu 14.04 After upgrading to 20.04 in steps where along the way all installed apps are upgraded I don't know what versions of postfix and dovecot I was previously running Server has nothing to do with my ISP it's just my own mail server to handle my websites I haven't been looking for other system errors
    # Pigeonhole version ()
    # OS: Linux 5.14.17-x86_64-linode150 x86_64 Ubuntu 20.04.3 LTS
    # Hostname: mail.<example>.com
    auth_verbose = yes
    listen = *
    mail_privileged_group = mail
    managesieve_notify_capability = mailto
    managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext
    namespace inbox {
    inbox = yes
    location =
    mailbox Drafts {
    special_use = \Drafts
    mailbox Junk {
    special_use = \Junk
    mailbox Sent {
    special_use = \Sent
    mailbox "Sent Messages" {
    special_use = \Sent
    mailbox Trash {
    special_use = \Trash
    prefix =
    passdb {
    driver = pam
    plugin {
    sieve = file:~/sieve;active=~/.dovecot.sieve
    protocols = " imap lmtp sieve pop3"
    service auth {
    unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0666
    user = postfix
    ssl_cert = </etc/dovecot/private/dovecot.pem
    ssl_client_ca_dir = /etc/ssl/certs
    ssl_dh = # hidden, use -P to show it
    ssl_key = # hidden, use -P to show it
    userdb {
    driver = passwd
    ## Dovecot configuration file

    # "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 "

    # Most (but not all) settings can be overridden by different protocols and/or
    # source/destination IPs by placing the settings inside sections, for example:
    # protocol imap { }, local { }, remote { }
    # 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

    # 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. In multi-instance setup doveadm and other commands
    # can use -i <instance_name> to select which instance is used (an alternative
    # to -c <config_path>). The instance name is also added to 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 =

    # Space separated list of login access check sockets (e.g. tcpwrap)
    #login_access_sockets =

    # With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
    # proxying. This isn't necessary normally, but may be useful if the destination
    # IP is e.g. a load balancer's IP.
    #auth_proxy_self =

    # 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>".

    dict {
    #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
    #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext

    # Most of the actual configuration gets included below. The filenames are
    # first sorted by their ASCII value and parsed in that order. The 00-prefixes
    # in filenames are intended to make it easier to understand the ordering.
    !include conf.d/*.conf

    # A config file can also tried to be included without giving an error if
    # it's not found:
    !include_try local.conf

Share This Page