6

I followed this guide on linode to setup dovecot and postfix mail server on my Ubuntu 12.04.2 LTS . The setup requires socket /var/spool/postfix/private/dovecot-lmtp to act as virtual transport. However, in my setup, this socket file doesn't exist when the service is started. And I do have the lmtp line in /etc/dovecot/conf.d/10-master.conf.

Here's a little info about my server.

Linux prosp 3.8.4-linode50 #1 SMP Mon Mar 25 15:50:29 EDT 2013 i686 i686 i386 GNU/Linux

root@prosp:/var/spool/postfix/private# ls
anvil   bsmtp    dovecot-auth  lmtp      mailman     relay    scache             tlsmgr      verify
auth    defer    error         local     proxymap    retry    scalemail-backend  trace   virtual
bounce  discard  ifmail        maildrop  proxywrite  rewrite  smtp               uucp

root@prosp:/var/spool/postfix/private# aptitude show postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql
Package: postfix
State: installed
Version: 2.9.6-1~12.04.1

Package: postfix-mysql
State: installed
Version: 2.9.6-1~12.04.1

Package: dovecot-core
State: installed
Version: 1:2.0.19-0ubuntu2

Package: dovecot-imapd
State: installed
Version: 1:2.0.19-0ubuntu2

Package: dovecot-pop3d
State: installed
Version: 1:2.0.19-0ubuntu2

Package: dovecot-lmtpd
State: installed
Version: 1:2.0.19-0ubuntu2

Package: dovecot-mysql
State: installed
Version: 1:2.0.19-0ubuntu2

Section from 10-master.conf

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
  # Create inet listener only if you can't use the above UNIX socket
  inet_listener lmtp {
    # Avoid making LMTP visible for the entire internet
    address = 127.0.0.1
    port = 2424
  }
}

I'm wondering why it doesn't exist. I've tried reinstalling dovecot-lmtpd to no avail. And because the lmtp socket doesn't exist, my mail server can send emails but cannot receive. The mail log has this line when an incoming email is received:

May 31 09:05:24 postfix/lmtp[3664]: 2FD80321F4: to=<myaddress@me.com>, relay=none, delay=0.41, delays=0.41/0/0/0, dsn=4.4.1, status=deferred (connect to me.com[private/dovecot-lmtp]: No such file or directory)

Logs after dovecot is restarted:

May 31 11:38:10 host dovecot: log: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
May 31 11:38:10 host dovecot: master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
May 31 11:38:10 host dovecot: master: Dovecot v2.0.19 starting up (core dumps disabled)
May 31 11:38:11 host postfix/smtpd[5741]: connect from localhost.localdomain[127.0.0.1]
May 31 11:38:11 host dovecot: auth-worker: mysql(127.0.0.1): Connected to database mailserver
May 31 11:38:11 host postfix/smtpd[5741]: 3F8A24DE2A3: client=localhost.localdomain[127.0.0.1], sasl_method=PLAIN, sasl_username=info@mydomain.com
May 31 11:38:11 host postfix/cleanup[5751]: 3F8A24DE2A3: message-id=<20130531113811.3F8A24DE2A3@otherdomain.com>
May 31 11:38:11 host postfix/qmgr[5683]: 3F8A24DE2A3: from=<info@mydomain.com>, size=938, nrcpt=1 (queue active)
May 31 11:38:11 host postfix/smtpd[5741]: disconnect from localhost.localdomain[127.0.0.1]
May 31 11:38:11 host postfix/error[5753]: 3F8A24DE2A3: to=<heshiming@mydomain.com>, relay=none, delay=0.05, delays=0.04/0/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to otherdomain.com[private/dovecot-lmtp]: No such file or directory)

Any ideas why this have happened?

It looks like I can't use lmtp as an inet listener either:

May 31 12:22:48 host postfix/lmtp[6798]: connect to localhost[127.0.0.1]:2424: Connection refused
May 31 12:22:48 host postfix/lmtp[6798]: connect to localhost[::1]:2424: Connection refused
May 31 12:22:48 host postfix/lmtp[6799]: connect to localhost[127.0.0.1]:2424: Connection refused
May 31 12:22:48 host postfix/lmtp[6799]: connect to localhost[::1]:2424: Connection refused
15
  • 2
    Do you have this: service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } in this /etc/dovecot/conf.d/10-master.conf ?
    – NickW
    May 31, 2013 at 9:25
  • If you do, do you have errors in the pertinent log files when you start dovecot?
    – NickW
    May 31, 2013 at 9:39
  • @NickW I do have the lmtp section. When dovecot is restarted, it produces thousands of the 'no such file or directory' error in the log. I guess this is because mails are actually received but not delivered. Besides these errors, I'm not seeing anything particular. My problem though, is that I really don't have this executable file.
    – He Shiming
    May 31, 2013 at 11:26
  • Can you paste in the errors from the first 10-20 lines after the restart?
    – NickW
    May 31, 2013 at 11:27
  • I've appended the log at the end of this post.
    – He Shiming
    May 31, 2013 at 11:40

4 Answers 4

10

The answers and responses already given contain all the parts of the solution, here's my attempt to tie that info together, having struggled with and now fixed the same problem:

Overview: Dovecot only acts upon the service lmtp section if lmtp appears in the protocols setting. Especially if you have a custom dovecot.conf file you may have omitted something.

Detail (for Debian, and by extension Ubuntu): Here's the key steps,

  • apt-get install dovecot-lmtpd
  • Check that dovecot.conf (in /etc/dovecot) includes the line !include_try /usr/share/dovecot/protocols.d/*.protocol: This is where protocols is set (specifically the lmtp.protocol file contains protocols = $protocols lmtp
  • Now to the service lmtp section: This should be in conf.d/10-master.conf but may be empty; the original question has settings in this section (adjust accordingly if you're doing the same thing):

    service lmtp {
      unix_listener /var/spool/postfix/private/dovecot-lmtp {
        mode = 0600
        user = postfix
        group = postfix
      }
    }
    
  • Make sure that the above conf.d/10-master.conf is included by your dovecot.conf (typically with !include conf.d/*.conf)

  • Reload Dovecot (service dovecot reload) for this configuration change to take effect
  • Double-check the running configuration with dovecot -n: Check that protocols is set and includes lmtp; check that the above service lmtp stanza appears too.
  • If you're specifying the dovecot-lmtp socket name as above, it should now exist (that service ltmp stanza tells Dovecot to create it when running), check with ls -l /var/spool/postfix/private/dovecot-lmtp
  • This should now play nicely with Postfix.
1
  • This worked for me... ubuntu 16
    – mzalazar
    Dec 7, 2018 at 14:12
5

I've discovered that though I have protocols = lmtp pop3 imap in /etc/dovecot/dovecot.conf, it's overridden by /etc/dovecot/conf.d/01-mail-stack-delivery.conf which contains only protocols = pop3 imap sieve. I've modified this file and the lmtp protocol is up.

2
  • You can check to make sure no other files have the protocols = line using sudo grep -rnw '/etc/dovecot/' -e "protocols ="
    – ki9
    Feb 12, 2017 at 0:51
  • this solved my problem, but it seems like a dirty solution. is there a cleaner way of solving this? Mar 11, 2017 at 1:16
0

https://packages.debian.org/sid/dovecot-lmtpd

apt-get install dovecot-lmtpd

2
  • 3
    Please add more details ... May 11, 2016 at 7:31
  • Solved the problem for me. Apr 7, 2020 at 17:34
-1

It's very interesting thing. I've done all the things I read here. In my private directory is a

/var/spool/postfix/private/lmtp

but no

/var/spool/postfix/private/dovecot-lmtp

so the postfix tell me:

2
  • 1
    Doesn't answer the question
    – ki9
    Feb 11, 2017 at 22:40
  • It works for me. In ubuntu 18.04 is /var/spool/postfix/private/lmtp
    – David
    Oct 8, 2019 at 7:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.