7.3.2.1 MaildirMessage

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

Typically, a mail user agent application moves all of the messages in the new subdirectory to the cur subdirectory after the first time the user opens and closes the mailbox, recording that the messages are old whether or not they've actually been read. Each message in cur has an "info" section added to its file name to store information about its state. (Some mail readers may also add an "info" section to messages in new.) The "info" section may take one of two forms: it may contain "2," followed by a list of standardized flags (e.g., "2,FR") or it may contain "1," followed by so-called experimental information. Standard flags for Maildir messages are as follows:

Flag Meaning Explanation
D Draft Under composition
F Flagged Marked as important
P Passed Forwarded, resent, or bounced
R Replied Replied to
S Seen Read
T Trashed Marked for subsequent deletion

MaildirMessage instances offer the following methods:

get_subdir( )
Return either "new" (if the message should be stored in the new subdirectory) or "cur" (if the message should be stored in the cur subdirectory). Note: A message is typically moved from new to cur after its mailbox has been accessed, whether or not the message is has been read. A message msg has been read if "S" in msg.get_flags() is True.

set_subdir( subdir)
Set the subdirectory the message should be stored in. Parameter subdir must be either "new" or "cur".

get_flags( )
Return a string specifying the flags that are currently set. If the message complies with the standard Maildir format, the result is the concatenation in alphabetical order of zero or one occurrence of each of "D", "F", "P", "R", "S", and "T". The empty string is returned if no flags are set or if "info" contains experimental semantics.

set_flags( flags)
Set the flags specified by flags and unset all others.

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. The current "info" is overwritten whether or not it contains experimental information rather than flags.

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. If "info" contains experimental information rather than flags, the current "info" is not modified.

get_date( )
Return the delivery date of the message as a floating-point number representing seconds since the epoch.

set_date( date)
Set the delivery date of the message to date, a floating-point number representing seconds since the epoch.

get_info( )
Return a string containing the "info" for a message. This is useful for accessing and modifying "info" that is experimental (i.e., not a list of flags).

set_info( info)
Set "info" to info, which should be a string.

When a MaildirMessage instance is created based upon an mboxMessage or MMDFMessage instance, the Status: and X-Status: headers are omitted and the following conversions take place:

Resulting state mboxMessage or MMDFMessage state
"cur" subdirectory O flag
F flag F flag
R flag A flag
S flag R flag
T flag D flag

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

Resulting state MHMessage state
"cur" subdirectory "unseen" sequence
"cur" subdirectory and S flag no "unseen" sequence
F flag "flagged" sequence
R flag "replied" sequence

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

Resulting state BabylMessage state
"cur" subdirectory "unseen" label
"cur" subdirectory and S flag no "unseen" label
P flag "forwarded" or "resent" label
R flag "answered" label
T flag "deleted" label

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