Editing Email Messages Stored as Drafts in Rich Text Format

This tutorial explains how to edit email messages stored as drafts in rich text format.

Introduction

Email messages can be stored as drafts by any of the following methods:

  • Using any of the following versions of the CImEmailOperation::CreateNewL() function:

    • Nine parameters version with TBool parameter set to ETrue

      static IMPORT_C CImEmailOperation *CreateNewL(TRequestStatus &aObserverRequestStatus,
      CMsvSession &aMsvSession, TMsvId aDestination, TMsvId aSmtpServiceId,
      TMsvPartList aPartList, const TMsvEmailTypeList &aMsvEmailTypeList,
      TUid aMsgType, TInt aPriority, TBool aUsePlainTextStorage);
    • Six parameters version

      static IMPORT_C CImEmailOperation *CreateNewL(TRequestStatus &aObserverRequestStatus,
      CMsvSession &aMsvSession, TMsvId aDestination, TMsvPartList aPartList,
      const TMsvEmailTypeList &aMsvEmailTypeList, TUid aMsgType);
    • Eight parameters version

      static IMPORT_C CImEmailOperation *CreateNewL(TRequestStatus &aObserverRequestStatus, 
      CMsvSession &aMsvSession, TMsvId aDestination, TMsvId aSmtpServiceId, TMsvPartList aPartList, 
      const TMsvEmailTypeList &aMsvEmailTypeList, TUid aMsgType, TInt aPriority=EPriorityStandard);
  • Using the CImEmailOperation::CreateForwardL() or CImEmailOperation::CreateReplyL() function on a message that is downloaded and stored as a draft in rich text format.

Procedure

  1. Use the TMsvId aMessageId parameter of the message (stored in the Draft folder) to create a new instance of the CMsvEntry class.

  2. Use the CMsvEntry class to create a CImEmailMessage object.

  3. Call the CImEmailMessage::GetBodyTextL() function to get the body text of the message in the CRichText class.

  4. If you want to retain rich text formatting, complete the following step 1. If you want to use plain text formatting, complete the following steps from 2 to 4.

    1. Call the CImEmailMessage::StoreBodyTextL() function with the edited CRichText class to store the body text.

    2. Call the CImEmailMessage::OpenPlainBodyTextForWriteL() function to get CImPlainBodyText.

    3. Call the CImPlainBodyText::StoreRichTextAsPlainTexL() function and pass the edited CRichText class to store the message.

    4. Call the CImPlainBodyText::CommitL() function to complete the editing operation.