Common Lisp Package: MEL.MIME

README:

FUNCTION

Public

FLAGP (MESSAGE FLAG)

Test for flag

MARK-MESSAGE (MESSAGE FLAG)

Add flag to message

OPEN-MESSAGE-INPUT-STREAM (MESSAGE &OPTIONAL (START 0))

Given a message-object which is contained within an folder create a stream to read the message in rfc2822 format

PARSE-RFC2822 (STRING &KEY (START 0) (END (LENGTH STRING)) (IGNORE-COMMENTS T) (IGNORE-SPACE T) (SPLIT-ATOMS NIL))

==> token, type, new-index

SKIP-RFC2822-HEADER (STREAM &OPTIONAL (FILE-POSITION 0))

Skip mail headers and return position in message

UNMARK-MESSAGE (MESSAGE FLAG)

Remove flag from message

Undocumented

ACCEPT-RFC2822-TOKEN (STRING EXPECTED-TYPE &KEY (START 0) (END (LENGTH STRING)) (EXPECTED-VALUE NIL) (TEST #'EQUAL) (TYPE-TEST (LAMBDA (TYPE) (EQ TYPE EXPECTED-TYPE))))

ADDRESS (ADDRESS-DESIGNATOR)

ADDRESS-EQ (ADDRESS1 ADDRESS2)

COLLECT-RFC2822-TOKENS (STRING)

COMPUTE-BODYSTRUCTURE (MESSAGE)

COPY-MESSAGE (MESSAGE FOLDER)

DATE-TO-UNIVERSAL-TIME (DATE)

DECODE-QUOTED-PRINTABLE (QP)

DECODE-QUOTED-PRINTABLE-HEADER (STRING)

DELETE-MESSAGE (MESSAGE)

FINALIZE-MESSAGE (MESSAGE &KEY ATTACHED-FILES BODY)

FIND-FOLDER (NAME &OPTIONAL (ERROR-P T))

FIND-VIEWABLE-PART (MESSAGE)

MAKE-BOUNDARY-TAG

MAKE-CONTENT-TYPE (SUPER SUB &REST PARAMS)

MAKE-GROUP-TABLE (ADDRESSES)

MAKE-MESSAGE (&KEY (SUBJECT ) FROM TO CC ATTACHED-FILES DATE ADDITIONAL-HEADER-FIELDS (BODY ))

MAKE-TOPLEVEL-PART-FROM-BODYSTRUCTURE (PARENT BODYSTRUCTURE &OPTIONAL NTH)

MEMBER-ADDRESS-P (GROUP ADDRESS)

MESSAGE-BODY-STREAM (MESSAGE)

MESSAGE-HEADER-STREAM (MESSAGE)

MESSAGE-SIZE (MESSAGE)

MESSAGE-STRING (MESSAGE)

MOVE-MESSAGE (MESSAGE FOLDER)

PARSE-ADDRESS (STRING &KEY (START 0) (END (LENGTH STRING)) (ERRORP T))

PARSE-ADDRESS-LIST (STRING &KEY (START 0) (END (LENGTH STRING)))

PARSE-RFC2822-ADDRESS (STRING)

PARSE-RFC2822-HEADER (STRING)

PART-BODY-STRING (PART)

READ-RFC2822-HEADER (STREAM)

UNIVERSAL-TIME-TO-DATE (UT &OPTIONAL (TIME-ZONE 0))

Private

PARSE-CONTENT-TYPE (STRING)

default Content-type: text/plain; charset=us-ascii => (values super sub parameters)

URL-ENCODE-BASE64 (SEQUENCE &KEY (START 0) (END (LENGTH SEQUENCE)))

Encode the octet-sequence sequence in base64 format

Undocumented

ACCEPT-CHAR (CHAR STREAM)

ACCEPT-CRLF (STREAM)

ACCEPT-NEWLINE (STREAM)

ALIST->PLIST (ALIST)

BASE64-CHAR (BASE64)

BUGGY (MESSAGE)

CHAR-BASE64 (CHAR)

CLEAN-HEADER-FIELD (STRING)

COLLECT-ALL (STRING TYPE &KEY (START 0) (END (LENGTH STRING)) (VALUE NIL VALUEP) (VALUE-TEST #'EQUAL))

DECODE-BASE64 (STRING)

EDIT-MESSAGE-BODY (MESSAGE)

GENERATE-MESSAGE-ID

GUESS-CONTENT-TYPE (FILE)

INTERN-ADDRESS-SPEC (ADDRESS-SPEC)

INTERN-HEADER-NAME

MAKE-CONTENT-TRANSFER-ENCODING (ENCODING)

MAKE-MESSAGE-BODY (MESSAGE BODY STREAM)

MAKE-MESSAGE-FROM-FILE (FILE)

MAKE-MULTIPART-BODY (MESSAGE FILES BODY STREAM)

MIME-PARSE-ERROR (CONTEXT-FMT &REST PARAMS)

MULTIPART-TYPE-CLASS (TYPE)

NEXT-TOKEN-OF-TYPE (STRING TYPE &KEY (START 0) (END (LENGTH STRING)) (VALUE NIL VALUEP) (VALUE-TEST #'EQUAL))

PARSE-ADDR-SPEC (STRING &KEY (START 0) (END (LENGTH STRING)) (ERRORP T))

PARSE-CONTENT-TRANSFER-ENCODING (STRING)

PARSE-GROUP-ADDRESS (STRING &KEY (START 0) (END (LENGTH STRING)) (ERRORP T))

PARSE-MAILBOX-ADDRESS (STRING &KEY (START 0) (END (LENGTH STRING)) (ERRORP T))

PARSE-MAILBOX-LIST (STRING &KEY (START 0) (END (LENGTH STRING)))

PARSE-MIME-TABLE (&OPTIONAL (FILE *MIME-TYPES-FILE*))

PARSE-MIME-VERSION (STRING)

PRINC-OBJECTS-SEPARATED (LIST &OPTIONAL (SEPARATOR ,) (STREAM *STANDARD-OUTPUT*))

READ-LINES-AND-OCTETS (IN-STREAM)

READ-MULTIPART-BODY-1 (PART STREAM)

READ-SIMPLE-BODY (PART)

READ-SINGLE-BODY (PART STREAM)

SCAN-FORWARD-BOUNDARY-TAG (IN-STREAM BOUNDARY)

SPLIT-STRING (STRING)

STRING-PREFIXP (PREFIX STRING)

TRANSMIT-FIELD-BODY (IN-STREAM OUT-STREAM)

URL-BASE64-CHAR (BASE64)

URL-CHAR-BASE64 (CHAR)

URL-DECODE-BASE64 (STRING)

WHITE-SPACE-P (C)

WRITE-RFC2822-HEADER (ALIST &OPTIONAL (STREAM *STANDARD-OUTPUT*))

MACRO

Public

Undocumented

BIND-RFC2822-TOKENS ((STRING (&KEY (START 0) END) &REST TOKENS) &BODY FORMS)

Private

Undocumented

DEFINE-FIELD-READER (ACCESSOR-NAME FIELD-NAME (MESSAGE) &BODY FORMS)

DEFINE-FIELD-WRITER (ACCESSOR-NAME FIELD-NAME (MESSAGE) &BODY FORMS)

GENERIC-FUNCTION

Public

CLOSE-FOLDER (FOLDER)

Close the given folder

OPEN-MESSAGE-STORING-STREAM (FOLDER MESSAGE)

Open a stream which can be used to store a message in rfc2822 format. This function does all necessary steps to register this message as a new message in the folder

Undocumented

BOUNDARY-TAG (MESSAGE)

CLEAR-FOLDER (FOLDER)

CONTENT-DESCRIPTION (MESSAGE)

CONTENT-ID (MESSAGE)

CONTENT-TRANSFER-ENCODING (MESSAGE)

CONTENT-TYPE (MESSAGE)

COPY-FOLDER (SOURCE-FOLDER SINK-FOLDER)

COPY-MESSAGE-USING-FOLDERS (MESSAGE MESSAGE-FOLDER SINK-FOLDER)

COUNT-MESSAGES (FOLDER)

DELETE-MESSAGE-USING-FOLDER (FOLDER MESSAGE)

ENSURE-HEADERS-READ (PARENT MESSAGE)

FIELD (NAME MESSAGE)

SETFFIELD (VALUE NAME MESSAGE &OPTIONAL (UNIQUE))

FIND-MESSAGE (FOLDER UID &KEY IF-DOES-NOT-EXIST (IF-DOES-NOT-EXIST ERROR))

FLAGP-USING-FOLDER (FOLDER MESSAGE FLAG)

MAKE-MESSAGE-FROM (OBJECT)

MAKE-TOPLEVEL-PART (MESSAGE)

MAP-MESSAGES (FN FOLDER)

MAP-RECENT-MESSAGES (FN FOLDER)

MARK-MESSAGE-USING-FOLDER (FOLDER MESSAGE FLAG)

MESSAGE-BODY-STREAM-USING-FOLDER (FOLDER MESSAGE)

MESSAGE-HEADER-STREAM-USING-FOLDER (FOLDER MESSAGE)

MESSAGE-SIZE-USING-FOLDER (FOLDER MESSAGE)

MESSAGE-STRING-USING-FOLDER (FOLDER MESSAGE)

MESSAGES (FOLDER)

MIME-VERSION (MESSAGE)

SETFMIME-VERSION (VALUE MESSAGE)

MOVE-FOLDER (SOURCE-FOLDER SINK-FOLDER)

MOVE-MESSAGE-USING-FOLDERS (MESSAGE MESSAGE-FOLDER SINK-FOLDER)

OPEN-MESSAGE-INPUT-STREAM-USING-FOLDER (FOLDER MESSAGE START)

PART-BODY-STREAM (PART)

PART-STREAM (PART)

PARTS (MESSAGE)

RECENT-MESSAGES (FOLDER)

REGISTER-FOLDER (FOLDER NAME)

SERIALIZE-FOLDER (FOLDER STREAM)

SHORT-NAME (FOLDER)

TOPLEVEL-PART (MESSAGE)

UNMARK-MESSAGE-USING-FOLDER (FOLDER MESSAGE FLAG)

Private

Undocumented

COMPUTE-BODYSTRUCTURE-USING-FOLDER (FOLDER MESSAGE)

ENCODE-BASE64 (SEQUENCE &KEY (START 0) (END (LENGTH SEQUENCE)))

FINALIZE-MESSAGE-USING-FOLDER (FOLDER MESSAGE &KEY ATTACHED-FILES BODY)

GROUP-MEMBER-P (GROUP MESSAGE)

MIME-PARSE-CONTEXT (CONDITION)

SETFMIME-PARSE-CONTEXT (NEW-VALUE CONDITION)

NTH-PART (NTH MESSAGE)

NTH-PART-STREAM (NTH BOUNDARY-TAG MESSAGE)

PART-PATH (PART)

TOKEN-TYPE-TEST-FUNCTION (OPERATION &REST ARGS)

SLOT-ACCESSOR

Public

Undocumented

ADDRESS-SPEC (OBJECT)

SETFADDRESS-SPEC (NEW-VALUE OBJECT)

BODY-START (OBJECT)

SETFBODY-START (NEW-VALUE OBJECT)

BODYSTRUCTURE (OBJECT)

SETFBODYSTRUCTURE (NEW-VALUE OBJECT)

CC-LIST (OBJECT)

SETFCC-LIST (NEW-VALUE OBJECT)

CONTENT-MD5-SUM (OBJECT)

CONTENT-OCTETS (OBJECT)

DATE (OBJECT)

SETFDATE (NEW-VALUE OBJECT)

DISPLAY-NAME (OBJECT)

SETFDISPLAY-NAME (NEW-VALUE OBJECT)

ENCAPSULATED-INPUT-STREAM (OBJECT)

SETFENCAPSULATED-INPUT-STREAM (NEW-VALUE OBJECT)

ENCAPSULATED-OUTPUT-STREAM (OBJECT)

SETFENCAPSULATED-OUTPUT-STREAM (NEW-VALUE OBJECT)

FLAGS (OBJECT)

SETFFLAGS (NEW-VALUE OBJECT)

FOLDER (MESSAGE)

SETFFOLDER (NEW-VALUE OBJECT)

FROM (OBJECT)

SETFFROM (NEW-VALUE OBJECT)

HEADER-FIELDS (OBJECT)

SETFHEADER-FIELDS (NEW-VALUE OBJECT)

MAILBOX-LIST (OBJECT)

SETFMAILBOX-LIST (NEW-VALUE OBJECT)

MD5-SUM (OBJECT)

MESSAGE (OBJECT)

SETFMESSAGE (NEW-VALUE OBJECT)

MESSAGE-CACHE (OBJECT)

SETFMESSAGE-CACHE (NEW-VALUE OBJECT)

MESSAGE-ID (OBJECT)

SETFMESSAGE-ID (NEW-VALUE OBJECT)

NAME (OBJECT)

SETFNAME (NEW-VALUE OBJECT)

PART-END (OBJECT)

SETFPART-END (NEW-VALUE OBJECT)

PART-START (OBJECT)

SETFPART-START (NEW-VALUE OBJECT)

REPLY-TO (OBJECT)

SETFREPLY-TO (NEW-VALUE OBJECT)

SENDER (OBJECT)

SETFSENDER (NEW-VALUE OBJECT)

STATE (OBJECT)

SETFSTATE (NEW-VALUE OBJECT)

SUBJECT (OBJECT)

SETFSUBJECT (NEW-VALUE OBJECT)

TO (OBJECT)

SETFTO (NEW-VALUE OBJECT)

UID (MESSAGE)

SETFUID (NEW-VALUE OBJECT)

Private

Undocumented

%PARTS (OBJECT)

SETF%PARTS (NEW-VALUE OBJECT)

CACHED-TOPLEVEL-PART (OBJECT)

SETFCACHED-TOPLEVEL-PART (NEW-VALUE OBJECT)

CONTENT (OBJECT)

SETFCONTENT (NEW-VALUE OBJECT)

CONTENT-ENCODING (OBJECT)

CONTENT-LINES (OBJECT)

CONTENT-PARAMETERS (OBJECT)

CONTENT-SUBTYPE (OBJECT)

CONTENT-SUPERTYPE (OBJECT)

DELETED-P (OBJECT)

SETFDELETED-P (NEW-VALUE OBJECT)

ORIGIN-FOLDER (OBJECT)

SETFORIGIN-FOLDER (NEW-VALUE OBJECT)

PARENT (OBJECT)

SETFPARENT (NEW-VALUE OBJECT)

PART-NUMBER (OBJECT)

SETFPART-NUMBER (NEW-VALUE OBJECT)

VARIABLE

Private

Undocumented

*ADDRESS-SPEC-TABLE*

*BUGGY-SOFTWARE-ACTION*

*MESSAGE-COUNTER*

*MIME-BASE-HEADER-FIELDS*

*MIME-TABLE*

*MIME-TYPES-FILE*

BASE-64-ALPHABET

URL-BASE-64-ALPHABET

CLASS

Public

BASIC-FOLDER

Superclass of all folders supporting the folder protocol

FOLDER (MESSAGE)

Protocol class for the Mail folder protocol

RECEIVER

Procotol class for folders that support the message receiver protocol

SENDER (OBJECT)

Procotol class for folders that support the message receiver protocol

Undocumented

ADDRESS (ADDRESS-DESIGNATOR)

BASIC-RECEIVER

BASIC-SENDER

ENCAPSULATING-INPUT-STREAM

ENCAPSULATING-OUTPUT-STREAM

EQ-MESSAGE-CACHE-MIXIN

EQL-MESSAGE-CACHE-MIXIN

EQUAL-MESSAGE-CACHE-MIXIN

GROUP-ADDRESS

INVALID-ADDRESS

MAILBOX-ADDRESS

MESSAGE (OBJECT)

MESSAGE-CACHE-MIXIN

MIME-MESSAGE

MULTIPART

PART

QUOTED-PRINTABLE-INPUT-STREAM

RFC2822-BASIC-MESSAGE

SIMPLE-FLAG-MIXIN

Private

Undocumented

BODYSTRUCTURE-MIXIN

MIME-BODY-MIXIN

MIME-HEADER-MIXIN

MULTIPART/ALTERNATIVE

MULTIPART/MIXED

MULTIPART/PARALLEL

RFC2822-BASIC-BODY-MIXIN

RFC2822-HEADER-MIXIN

SIMPLE-PART

STRING-BASIC-RECEIVER

CONDITION

Public

Undocumented

MEL-ERROR

MESSAGE-NOT-FOUND

Private

Undocumented

MIME-PARSE-ERROR (CONTEXT-FMT &REST PARAMS)

CONSTANT

Private

Undocumented

+VT+