Cyrus, Qmail's Sendmail replacement, sieve and local mail injection CRLF problem

John Wade jwade at
Thu Sep 30 01:27:33 EDT 2004

Hi Info-Cyrus List Junkies,

We may be the last people on the planet using qmail as an MTA with Cyrus 
on Linux (current 2.2.3 from Simon's RPM with some custom patches on 
RedHat EL3.0.  Thanks Simon!)  I keep looking at other MTA's but we have 
lots of qmail experience, and it has been rock solid with no security 
issues.   Performance has also been fine even with all the additional 
overhead of not using lmtp.  (I sure wish single instance store was 
usable however.)

In the past have worked through a number of issues, including the sieve 
return address problem (qmail does not like the "<>" address Cyrus uses 
for sieve generated messages) and if anyone is interested, I could 
provide tips and info about what we do to have them coexist. We have 
been using this combo since Cyrus 1.6.

Everything works beautifully except for one known problem.     Cyrus's 
internal mail storage format has line break of CR/LF just like SMTP.    
Qmail expects that any mail injected locally via qmail-inject or its 
sendmail replacement (which is just a wrapper around qmail-inject) will 
have LF line breaks only.   Cyrus's sieve processing calls qmail's 
sendmail replacement in lmtpd.c and injects mail in the CRLF format 
which then causes qmail to corrupt the messages as it sends them 
outbound presumably by adding extra CR's.

The messages that emerge are not RFC compliant.  Fortuantely, many MTA's 
accept them and fix the problem and many mail clients correctly display 
unfixed messages.   Unfortunately, MS Outlook and Exchange server do 
not.    Since this affects line breaks in the headers that Cyrus 
creates, the message often appear to the recipient with no apparent 
headers at all.   AOL also rejects the messages at the MTA level.

It was a simple fix to hack lmtpd.c to fix all of the header issues by 
switching CRLF's to LF's, but I still would have to parse every buffer  
that cyrus uses to create messages to make the forward and autoreply 
features work correctly and produce truly RFC compliant messages.   
Before I either hack Cyrus further, or more likely go after qmail, has 
anyone else solved this problem?   Is anyone else aware of this 
problem?   Does anyone care? :-)

Thanks in advance,
John Wade
Director of Systems and Network Services
Oakton Community College
Des Plaines, IL

Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list