[usmt dev] communications format between MUA and API v0.20010213.01
Jason Pyeron
dev@smime.pyerotechnics.com
Tue, 13 Feb 2001 17:58:03 -0500 (EST)
I will be updating this, but here is todays copy
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
section 1.2
...
The syntax that distinguishes between header fields is
specified separately from the internal syntax for particular
fields. This separation is intended to allow simple parsers to
operate on the general structure of messages, without concern for
the detailed structure of individual header fields. ...
...
The framework severely constrains document tone and appear-
ance and is primarily useful for most intra-organization communi-
cations and well-structured inter-organization communication.
It also can be used for some types of inter-process communica-
tion, such as simple file transfer and remote job entry. ...
...
the formal grammar: (from appendix B)
message = headers body ;
headers = field* ;
body = (CRLF text*)* ;
field = field-name ":" [field-body] ;
CRLF ;
field = field-name ":" [field-body / ;
( LWSP? ":" Base64Body ) ] ;
CRLF ;
field-name = <any CHAR, excluding CTL, ; names are not case
SPACE, and ":">+ ; sensitive!
Base64Body = field-body ; should we make a
; difference between
; BASE64 and regular
field-body = text* [CRLF LWSP field-body] ;
text = <any CHAR, including ; => atoms, specials,
CR & LF, but NOT ; comments and
including CRLF> ; quoted-strings are
; NOT recognized.
; CRLF(0d0a) can be
; encoded as +DQAK-
LWSP = SPACE / HT ; semantics = SPACE
CTL = NUL / SOH / STX / ETX / ;
EOT / ENQ / ACK / BEL / ;
BS / HT / LF / VT / ;
FF / CR / SO / SI / ;
DLE / DC1 / DC2 / DC3 / ;
DC4 / NAK / SYN / ETB / ;
CAN / EM / SUB / ESC / ;
FS / GS / RS / US ;
CRLF = CR LF ; in Unicode it is
; 000D000A, but in UTF-7
; it is 0D0A, another
; encoding for UTF-7 is
; +DQAK-
HT = <ASCII HT, horizontal-tab> ; (11,0x09)
LF = <ASCII LF, line-feed> ; (12,0x0A)
CR = <ASCII CR, carrige-return> ; (15,0x0D)
SPACE = <ASCII SP, space> ; (40,0x20)
see man ascii for NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL, BS, VT, FF,
SO, SI, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC,
FS, GS, RS, US
CHAR = 0..177 (0x00..0x7F)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
http://www.landfield.com/rfcs/rfc2152.html
field:UTF-7 string