Penguin

LMTP in /etc/services

Debian doesn't have it by default, so add this to the bottom of /etc/services:

lmtp            2003/tcp                        # Cyrus LMTP

Running Cyrus LMTPd on a TCP port (for Exim)

Exim requires a remote transport to do a callback, so you need to connect to a port, not a socket.

Your transport should look like:

cyrus_lmtp:
  driver = smtp
  protocol = lmtp
  hosts = your.host.name
  allow_localhost

In /etc/cyrus.conf, uncomment the lmtp line, and change the command line from lmtpd to lmtpd -a. Copy that line, and bind it to your.host.name as well.

WARNING: this means anyone who can connect to your machine on 2003/tcp can deliver it mail. Firewall it.

Test with exim4 -bhc ip.ad.re.ss.

You cannot put hosts = localhost, else you will get:

>>> accept: condition test deferred
451 Could not complete recipient verify callout
LOG: H=(fosdf) [202.49.46.2] F=<foosg@dsgsg> temporarily rejected RCPT sdgg@hs.net.nz: Could not complete recipient verify callout

See Cyrus IMAP at the Exim wiki.

Sample LMTP session

Note that you can't put spaces after MAIL FROM:, and you need <>s:

user@vienne:/# telnet localhost lmtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 vienne LMTP Cyrus v2.2.12-Debian-2.2.12-4ubuntu1 ready
LHLO foo
250-vienne
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-SIZE
250-AUTH EXTERNAL
250 IGNOREQUOTA
MAIL FROM:<from>
250 2.1.0 ok
RCPT TO:<to>
550-Mailbox unknown.  Either there is no mailbox associated with this
550-name or you do not have authorization to see it.
550 5.1.1 User unknown
QUIT
221 2.0.0 bye

Troubleshooting

If you see:

RCPT TO:<UserWithCaps@some.domain.com>
550-Mailbox unknown.  Either there is no mailbox associated with this
550-name or you do not have authorization to see it.
550 5.1.1 User unknown

but userwithcaps@some.domain.com works fine, you need to set

lmtp_downcase_rcpt: true

in your imapd.conf and restart cyrus. That is, assuming you don't want case sensitivity on your user mailboxes (and who would?).

See also:


CategoryMailNotes