7.3.2.5 MMDFMessage

class MMDFMessage( [message])
A message with MMDF-specific behaviors. Parameter message has the same meaning as with the Message constructor.

As with message in an mbox mailbox, MMDF messages are stored with the sender's address and the delivery date in an initial line beginning with "From ". Likewise, flags that indicate the state of the message are typically stored in Status: and X-Status: headers.

Conventional flags for MMDF messages are identical to those of mbox message and are as follows:

Flag Meaning Explanation
R Read Read
O Old Previously detected by MUA
D Deleted Marked for subsequent deletion
F Flagged Marked as important
A Answered Replied to

The "R" and "O" flags are stored in the Status: header, and the "D", "F", and "A" flags are stored in the X-Status: header. The flags and headers typically appear in the order mentioned.

MMDFMessage instances offer the following methods, which are identical to those offered by mboxMessage:

get_from( )
Return a string representing the "From " line that marks the start of the message in an mbox mailbox. The leading "From " and the trailing newline are excluded.

set_from( from_[, time_=None])
Set the "From " line to from_, which should be specified without a leading "From " or trailing newline. For convenience, time_ may be specified and will be formatted appropriately and appended to from_. If time_ is specified, it should be a struct_time instance, a tuple suitable for passing to time.strftime(), or True (to use time.gmtime()).

get_flags( )
Return a string specifying the flags that are currently set. If the message complies with the conventional format, the result is the concatenation in the following order of zero or one occurrence of each of "R", "O", "D", "F", and "A".

set_flags( flags)
Set the flags specified by flags and unset all others. Parameter flags should be the concatenation in any order of zero or more occurrences of each of "R", "O", "D", "F", and "A".

add_flag( flag)
Set the flag(s) specified by flag without changing other flags. To add more than one flag at a time, flag may be a string of more than one character.

remove_flag( flag)
Unset the flag(s) specified by flag without changing other flags. To remove more than one flag at a time, flag maybe a string of more than one character.

When an MMDFMessage instance is created based upon a MaildirMessage instance, a "From " line is generated based upon the MaildirMessage instance's delivery date, and the following conversions take place:

Resulting state MaildirMessage state
R flag S flag
O flag "cur" subdirectory
D flag T flag
F flag F flag
A flag R flag

When an MMDFMessage instance is created based upon an MHMessage instance, the following conversions take place:

Resulting state MHMessage state
R flag and O flag no "unseen" sequence
O flag "unseen" sequence
F flag "flagged" sequence
A flag "replied" sequence

When an MMDFMessage instance is created based upon a BabylMessage instance, the following conversions take place:

Resulting state BabylMessage state
R flag and O flag no "unseen" label
O flag "unseen" label
D flag "deleted" label
A flag "answered" label

When an MMDFMessage instance is created based upon an mboxMessage instance, the "From " line is copied and all flags directly correspond:

Resulting state mboxMessage state
R flag R flag
O flag O flag
D flag D flag
F flag F flag
A flag A flag

See About this document... for information on suggesting changes.