Chris,
Have you tried your method on the procmail list? The message-id for
list mail is <"quoted string"@campino>, and the only other place that
campino appears is as a host name in a received header.
The message-id needs to uniquely identify a specific message within a
domain (although some mailers recently cited produce constant strings
which do not accomplish this). In particular, it does not need to
identify the domain.
A message-id does need to follow the format "<" + "local part" + "@" +
"domain part + ">". There is a lot of variation allowed within that.
The local part can include quoted strings with spaces and other strange
characters. The domain part contains one or more sub-domains. A
sub-domain may be a domain reference or a domain literal. White space,
including quoted CRs, is allowed all over.
If you want to be thorough, you will have to build a parser. If you can
settle for "almost there," try Era's recipe or mine (below) or have at
it yourself.
## Note: this recipe must be modified before use. Each '\t' should be
## converted to a tab.
## MID is the message-id, previously extracted. LF is a newline.
:0 ## attempt "<"word *("." word) "@" sub-domain *("." sub-domain)">"
* ! MID ?? ^^<([^][()<>,;:\" \t]+(\.[^][()<>,;:\" \t]+)*|\"[^"]+\")\
@((\[.*\]|[^][()<>,;:\" \t]+)(\.(\[.*\]|[^][()<>,;:\" \t]+))*\
)>[ \t]*^^
{ LOG="Message-id probably violates RFS822$LF $MID$LF" }
--
Rik Kabel Old enough to be an adult
rik(_at_)netcom(_dot_)com