VMime
IMAPMessage Class Reference
Inheritance diagram for IMAPMessage:
Collaboration diagram for IMAPMessage:

Public Member Functions

 IMAPMessage (shared_ptr< IMAPFolder > folder, const int num)
 
 IMAPMessage (shared_ptr< IMAPFolder > folder, const int num, const uid &uid)
 
 ~IMAPMessage ()
 
int getNumber () const
 
const uid getUID () const
 
vmime_uint64 getModSequence () const
 
size_t getSize () const
 
bool isExpunged () const
 
shared_ptr< const
messageStructure
getStructure () const
 
shared_ptr< messageStructuregetStructure ()
 
shared_ptr< const headergetHeader () const
 
int getFlags () const
 
void setFlags (const int flags, const int mode=FLAG_MODE_SET)
 
void extract (utility::outputStream &os, utility::progressListener *progress=NULL, const size_t start=0, const size_t length=-1, const bool peek=false) const
 
void extractPart (shared_ptr< const messagePart > p, utility::outputStream &os, utility::progressListener *progress=NULL, const size_t start=0, const size_t length=-1, const bool peek=false) const
 
void fetchPartHeader (shared_ptr< messagePart > p)
 
shared_ptr< vmime::messagegetParsedMessage ()
 
- Public Member Functions inherited from message
virtual ~message ()
 

Additional Inherited Members

- Public Types inherited from message
enum  Flags {
  FLAG_SEEN = (1 << 0), FLAG_RECENT = (1 << 1), FLAG_DELETED = (1 << 2), FLAG_REPLIED = (1 << 3),
  FLAG_MARKED = (1 << 4), FLAG_PASSED = (1 << 5), FLAG_DRAFT = (1 << 6)
}
 
enum  FlagsModes { FLAG_MODE_SET, FLAG_MODE_ADD, FLAG_MODE_REMOVE }
 
- Protected Types inherited from message
enum  PrivateConstants { FLAG_UNDEFINED = 9999 }
 
- Protected Member Functions inherited from message
 message ()
 
 message (const message &)
 
- Protected Member Functions inherited from object
 object ()
 
 object (const object &)
 
objectoperator= (const object &)
 
virtual ~object ()
 

Detailed Description

IMAP message implementation.

Constructor & Destructor Documentation

IMAPMessage ( shared_ptr< IMAPFolder folder,
const int  num 
)
IMAPMessage ( shared_ptr< IMAPFolder folder,
const int  num,
const uid uid 
)

Member Function Documentation

void extract ( utility::outputStream os,
utility::progressListener progress = NULL,
const size_t  start = 0,
const size_t  length = -1,
const bool  peek = false 
) const
virtual

Extract the whole message data (header + contents).

Warning
Partial fetch might not be supported by the underlying protocol.
Parameters
osoutput stream in which to write message data
progressprogress listener, or NULL if not used
startindex of the first byte to retrieve (used for partial fetch)
lengthnumber of bytes to retrieve (used for partial fetch)
peekif true, try not to mark the message as read. This may not be supported by the protocol (IMAP supports this), but it will NOT throw an exception if not supported.

Implements message.

void extractPart ( shared_ptr< const messagePart p,
utility::outputStream os,
utility::progressListener progress = NULL,
const size_t  start = 0,
const size_t  length = -1,
const bool  peek = false 
) const
virtual

Extract the specified MIME part of the message (header + contents).

Warning
Partial fetch might not be supported by the underlying protocol.
Parameters
ppart to extract
osoutput stream in which to write part data
progressprogress listener, or NULL if not used
startindex of the first byte to retrieve (used for partial fetch)
lengthnumber of bytes to retrieve (used for partial fetch)
peekif true, try not to mark the message as read. This may not be supported by the protocol (IMAP supports this), but it will NOT throw an exception if not supported.

Implements message.

void fetchPartHeader ( shared_ptr< messagePart p)
virtual

Fetch the MIME header for the specified part.

Parameters
pthe part for which to fetch the header

Implements message.

int getFlags ( ) const
virtual

Return the flags of this message.

Returns
flags of the message

Implements message.

References message::FLAG_UNDEFINED.

shared_ptr< const header > getHeader ( ) const
virtual

Return a reference to the header fields of the message (must fetch before).

Returns
header section of the message

Implements message.

vmime_uint64 getModSequence ( ) const

Returns the modification sequence for this message.

Every time metadata for this message changes, the modification sequence is updated, and is greater than the previous one. The server must support the CONDSTORE extension for this to be available.

Returns
modification sequence, or zero if not supported by the underlying protocol
int getNumber ( ) const
virtual

Return the sequence number of this message.

This number is used to reference the message in the folder.

Returns
sequence number of the message

Implements message.

shared_ptr< vmime::message > getParsedMessage ( )
virtual

Get the RFC-822 message for this abstract message.

Warning: This may require getting some data (ie: structure and headers) from the server, which is done automatically. Actual message contents (ie: body) will not be fetched if possible (IMAP allows it, whereas POP3 will require to fetch the whole message).

Returns
a RFC-822-parsed message

Implements message.

References IMAPMessage::getStructure(), and fetchAttributes::STRUCTURE.

size_t getSize ( ) const
virtual

Return the size of the message (must fetch before).

Returns
size of the message (in bytes)

Implements message.

shared_ptr< const messageStructure > getStructure ( ) const
virtual

Return the MIME structure of the message (must fetch before).

Returns
MIME structure of the message

Implements message.

Referenced by IMAPMessage::getParsedMessage().

shared_ptr< messageStructure > getStructure ( )
virtual

Return the MIME structure of the message (must fetch before).

Returns
MIME structure of the message

Implements message.

const message::uid getUID ( ) const
virtual

Return the unique identifier (UID) of this message in its folder (must fetch before).

Returns
UID of the message

Implements message.

bool isExpunged ( ) const
virtual

Check whether this message has been expunged (ie: definitively deleted) and does not exist in the folder anymore.

Returns
true if the message is expunged, false otherwise

Implements message.

void setFlags ( const int  flags,
const int  mode = FLAG_MODE_SET 
)
virtual

Set the flags of this message.

Parameters
flagsset of flags (see Flags)
modeindicate how to treat old and new flags (see FlagsModes)

Implements message.

References messageSet::byNumber(), messageSet::byUID(), and message::uid::empty().


The documentation for this class was generated from the following files: