Sendmail+Cyrus IMAP "Data format error" and bounces

Deborah Pickett debbiep at polyfoam.com.au
Tue Mar 17 18:38:30 EDT 2020


On 2020-03-17 23:49, Andrea Venturoli wrote:
> _ sendmail is SMTPUTF8-aware (this is confirmed by EHLO); however 
> Cyrus isn't?

Could be.  This option in imapd.conf might be relevant:

rfc2047_utf8: 0

If enabled, imapd will parse any non-encoded character sequence in MIME 
header values as UTF8. This is useful for installations that either 
advertise the UTF8SMTP (RFC 5335) extension or receive mails with 
improperly escaped UTF-8 byte sequences. It is recommended that this 
option is left disabled unless there is good reason to do otherwise.

[source: 
https://www.cyrusimap.org/imap/reference/manpages/configs/imapd.conf.html]

> _ 5.6.7 means either the sender or the recipient is not ASCII:
>   however I can see for sure that, at least in certain cases, the 
> recipient is in fact ASCII (all my addresses are);
>   possibly the sender isn't: altough in the logs I see an ASCII 
> address, it might not be and it gets *represented* in ASCII? I'd find 
> this strange, though;
>
> _ or, possibly, other headers are non ASCII: that's what I thought 
> prior to your mail and it still seems more probable to me, but then I 
> should see 5.6.9 (or 5.6.8?), not 5.6.7.

I wondered about that too.  I couldn't tell, and probably you can't 
either unless you can see all the headers in the messages that are being 
rejected.  I'd see this as an opportunity: now you can probably craft 
your own SMTP conversation to deliberately trigger the 5.6.7 rejection, 
and not have to wait for fate to deliver one to your server.

It may also be instructive to temporarily disable UTF8SMTP in sendmail 
and see if that changes the rejection behaviour.  Do this carefully 
because you may reject more that you intended.

> In any case, I'm fine if these messages are plainly rejected; I'm not 
> fine if they are accepted and then bounced.
> I guess this means the problem lies between sendmail and Cyrus, with 
> the former accepting it and, only afterwards, the latter refusing it.
> Any way to configure one of the two to avoid this?

The config for that would be on the sendmail side, so I don't know.  
Perhaps there's a way for sendmail to keep the connection from the 
sender open until it has attempted delivery to Cyrus; then sendmail 
could reject the sender's initial SMTP connection without having to 
generate a bounce message. Once you are armed with proof that Cyrus is 
rejecting these messages, you could take that back to the sendmail group 
and see if they can help.

-- 
Deborah Pickett
System Administrator
Polyfoam Australia Pty Ltd



More information about the Info-cyrus mailing list