On Fri, Aug 11, 2017 at 11:03:20AM +0100, Darac Marjal wrote: > On Fri, Aug 11, 2017 at 01:14:21PM +1000, Zenaan Harkness wrote: > > Any sieve gurus? > > > > (YES, I finally made it off of procmail, and sieve is AWEsome in > > comparison - oh happy days :) > > > > So two sieve failures (dodgy incoming emails got through gmail) > > exposed themselves in relation to sieve in the last few days as > > follows: > > > > > > 1) > > The first is simply a "superfluous" space char at the end of the line > > on the "From:" line, as follows (ignore leading spaces): > > > > From: "EFA" <memberad...@efa.org.au>⋅ > > > > Note the deceptively cheeky little space char at the end of the line > > - and yes, either EFA or some middle man has a dodgy MUA/ mail > > processing agent. > > > > QUESTION: > > Why is a single space at this EOL, so malformed as to cause sieve to > > spit the dummy with an error? > > According to RFC5322 (which obsoleted RFC2822, which obsoleted RFC822), the > from field is defined as: > > from = "From:" mailbox-list CRLF > mailbox-list = (mailbox *("," mailbox)) / obs-mbox-list > mailbox = name-addr / addr-spec > name-addr = [display-name] angle-addr > angle-addr = [CFWS] "<" addr-spec ">" [CFWS] / > obs-angle-addr > obs-mbox-list = *([CFWS] ",") mailbox *("," [mailbox / CFWS]) > > (addr-spec is an email address). So, the simplest parsing of that line is as > a single mailbox where display-name is > EFA (That is, display-name is actually ' "EFA" ', but the spaces are optional > whitespace within the quoted-string and > the quotes delimit the content), and the remainder is an angle-addr. > Angle-addr DOES, as you can see, allow for CFWS > (Comment and/or Folding White Space) after the closing angle bracket. > > So, I would say that the From header *is* RFC compliant and you should > consider raising a bug.
Thank you. That's "fully guru, man, fully guru!" :D > > 2) > > The dodgiest "To:" line I have literally ever seen, as follows: > > > > To: <Undisclosed-Recipient:;> > > > > Notice the colon, AND the semi colon, in this "email address". > > This is allowed by RFC 6854 (March 2013), which updates RFC5322 to allow > "Group Syntax" in the From and Sender fields. > RFC5322 already allowed group syntax in To, Cc, BCc etc fields. Groups > consist of: > > group = display-name ":" [group-list] ";" [CFWS] > group-list = mailbox-list / CFWS / obs-group-list > > In other words, they consist of a display name, then a colon, then a list of > mailboxes and a final semi-colon. The > list of mailboxes is optional, so here we have a group called > "Undisclosed-Recipient" with no members. Or, in other > words, this message is not addressed to anybody (it's probably been > blind-copied to others, though). > > RFC 6854, in allowing group syntax in the From Field allows one to say "This > message is not from anyone" or "This > message is from a group of authors" and, in theory, should mean that no-one > needs to use "nore...@example.org" or > "direct...@example.com" as a From address. Sounds like I'm running an implementation of sieve which is a bit behind the times. > > Again gmail passed it right through. > > > > I can actually accept this failure of sieve to pass the email through > > - such an addy is indeed rather egregious. > > > > BUT, it would be nice to have sieve actuallly OUTPUT the actual > > problematic email address, and to this end, does anyone know some > > magical incantation to add to sieve, so I can see all problematic > > (and only the problematic) lines of incoming emails, as "error > > output" by sieve to the cmd line? > > This depends on your implementation of sieve. Dovecot's implementation, > Pigeonhole, will log to ~/.dovecot.sieve.log > by default. Hmm. Gnu mailutils. Seems it's a little out of date with the RFCs, failing to e.g. detect "Undisclosed-Recipient:;" AND balking on a harmless space char ... perhaps it's designed to only work well assuming some other mailutils pre-processing. Oh well, try dovecot-sieve it is. Thank you very much. > -- > For more information, please reread. :) - Great .sig