LMTP from remote Postfix, user mismatch -> Mailbox does not exist

Andreas Winkelmann ml at awinkelmann.de
Fri Sep 22 12:33:23 EDT 2006


Am Friday 22 September 2006 18:17 schrieb Tomasz Chmielewski:

> Currently, I'm using Cyrus and Postfix on the same box, everything works
> fine.
> Due to the high load of the server, I'm going to split the server into
> several machines.
>
> Users are kept in MySQL database, each email has its own login and
> password:
>
> joe at domain, user-001, password
> mary at domain2, user-002, password2
>
> Right now, when Postfix receives email to joe at domain, it delivers it to
> Cyrus using local sockets (lmtp) to user-001.
>
> With separate machines, it doesn't work.
>
> First, Postfix machine receives email to joe at domain.
> Then, it sends it via lmtp (tcp) to Cyrus machine, with the address
> joe at domain.
> Cyrus wants to deliver the mail to "joe" mailbox, which doesn't exist -
> cyrus should deliver the mail to "user-001":
>
> connection from postfix1.domain [10.1.1.5]
> about to exec /usr/lib/cyrus-imapd/lmtpd
> login: postfix1.syneticon.net [10.1.1.4] cyruslmtp PLAIN User logged in
> verify_user(user.joe) failed: Mailbox does not exist
>
> Unfortunately, I'm not even sure where to fix the problem, as when
> Postfix attempts to deliver mail via lmtp/tcp, Cyrus/lmtp doesn't even
> do any lookups in MySQL database.

Cyrus-Imapd has no ability to do lookups in mysql for Recipients.

Use Postfix to deliver the Mail to the right Recipient/Mailbox.

> I started lmtpd with "-a" parameter, as hosts are in a trusted network:
>
>    lmtp          cmd="lmtpd -a" listen="lmtp" prefork=1
>
> Anyone knows how to fix this issue?
>
> In other words, lmtpd, when receives an email to joe at domain, should
> perform a lookup in MySQL database:
>
> SELECT dest FROM virtual WHERE alias='joe at domain'

-- 
	Andreas


More information about the Info-cyrus mailing list