Consulting djbware Publications

mess822x

What is mess822x?

Dan Bernstein published mess822 in 1998 in order to provide a framework for parsing the SMTP email header together with some more gadgets for qmail. This package was released 2011 into the public domain and to my knowledge nobody cared about it anymore. However, in spite of SPF, DKIM, and DMARC (ARC) message header fields it becomes increasingly important to digest an email correctly.

My mess822x is an enhancement while providing the following

Features

The mess822x package and its qmail addons should work well with vanilla qmail and s/qmail. In fact, its message header parsing functions are not depending on anything.

A new routine routine ifvalidto has been added to be used in a .qmail file for primitive but effective spam rejection.

Sources

Version & Download Description fehQlibs version Verification
mess822x 1.22 The eights release is RFC 2045/2047/4648 compliant and enables MIME part decomposition while its BASE64/QP de/encoding is standard now for all header lines. fehQlibs-25+ MD5: f286e07b060012a2ba6d00dd634ee87b
Build: 20250106170059
mess822x 0.70 The fourth release includes the verbosity patch from George Matsumara. fehQlibs-25+ MD5: b9615437c7548e22143f94ad6c52bacb
Build: 20240914121611
mess822x 0.69 The third release; DKIM and SPF headers now considered. fehQlibs-25 MD5: 088b22638ee9a45330a8756f16dcfe98
Build: 20240824153252
mess822x 0.67 The second release; condensed WSPs, Win/DOS saved message compatibility. > fehQlibs-16 MD5: b7f77c6e5769242ce8709cefbf08ffe6
Build: 20201228200100

mess822x's source files are documented in doxygen.

Documentation

Currently, there isn't much documentation about mess822x except for the embedded one:

For further discussions see:

Man pages

mess822 programs mess822 library functions (s/)qmail and documentation
822body mess822 iftocc
822date mess822_addr ifvalidto
822field mess822_base64 new-inject
822header mess822_date ofmidpd
822mimeparts mess822_fold ofmidpname
822print mess822_qp
822received mess822_quote config
b64decode mess822_token commands
b64encode mess822_when
qpdecode rewirtehost
qpencode rewriting

Example to use 822field to retrieve DMARC fields in messages

Here, we use the extended feature of 822field in order to retrieve the DMARC header fields from 'message':

$ 822field +ARC < message ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nltd+xB85SKby4SjHIyC5HWgiWEHVZvHybfs0avK93dYu7dOW3z3d70beeXzMcLsvch3Zc5c5sTYyuxZpytpLkWkNCBC40PvwS9fB0nFU+tEePRJeelzotf9L470Q4+bImvndkqqSqSpfrNCLUp9EAb6kjE54pQ8ddehfO8M/ota1ISj/NLs36QW913HtIR5IhMv2uNehip2XgumQqsj3sWG7dlOeX4CBhvBjeYmF7aqaY8QHQMeK4/7BtMsOo3nbLQo5RqEnF+jjL/TvR2SwSXcn2TQz7sxg7QPiPsWX2lTLe+ock66/Txi5tLp9soYeF01+8zHpYAUqIwAKasYSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2kKxEcxSI7gm5CzyGxBK44awsouQ7frgk0sQXkOPYjc=; b=CDBimg1o4S4yWx6Nf25pXg6ve2nKKy0Poyx5etCaT5VMe1yz42RfMio25/49xoH+ipdQTJoC12RLYwfFYqkhVkrGO5wNEBE+D4uwA6X0hqbzBpqPhf3peQWuyBPuxq4fipcymwdS0NCoVzDF8NCiGVqGqxnWJzH8ZfQ8Ltv51pPzpEzuhfs4qCboliIJAjSImDOPLq/1UZE+f4JhTIW+wd/WcDmiSB4Y/NGxvNso+MxudQwws9xv5DDKBktXBEnP4ZehmBX0vzmTYmg3jCcHub/r/4Lsn6SRxTpY1MOAd9lO//wZPo3Dxywtd+ehicgh8+NYMTcq0pP2+nAHi/kFsA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=keysight.com; dmarc=pass action=none header.from=keysight.com; dkim=pass header.d=keysight.com; arc=none

How to install mess822x

Prior of installing mess822x you need to install the fitting fehQlibs. Please follow instructions here.

Tickets, Change Requests, communication

An EZMLM mailing list keeps you updated with current developments, bug fixes, and features discussed. This list also can be used to file

To inscribe use the: s/qmail mailing list

As usual, I can't guarantee a certain response level; but reasonable issues will be answered.