I'm trying to set up cyrus-imap with exim4. Exim4 does smtp-time virus and spamscan, and then calls cyrdeliver with arg username. The only error is, that cyrdeliver always complaining about: "Message contains invalid header", and the message doesn't get delivered.
This probably isn't really relevant to the problem you are seeing; but why are you using cyrdeliver instead of directly talking to lmtpd? Here are the router and transport that I use:
cyrus: driver = accept retry_use_local_part transport = tcp_lmtp
tcp_lmtp driver = smtp protocol = lmtp hosts = 127.0.0.1 allow_localhost delivery_date_add envelope_to_add return_path_add
(I use the TCP/IP connection to lmtpd because I'm doing /callout recipient checking and that isn't supported by the lmtp driver. If you aren't doing that, you can use the lmtp driver and a unix- domain socket.)
-Pat