omacp/omacpadapters/EmailAdapter/src/CWPEmailSaveItem.cpp
changeset 18 7d11f9a6646f
parent 4 75a71fdb4c92
child 21 c707676bf59f
--- a/omacp/omacpadapters/EmailAdapter/src/CWPEmailSaveItem.cpp	Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1653 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Saves CWPEmailItems
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "CWPEmailSaveItem.h"
-#include    "CWPEmailItem.h"
-#include    "EmailAdapter.pan"
-#include    "WPEmail.hrh"
-
-#include    <wpemailadapterresource.rsg>
-#include    <WPAdapterUtil.h>   // Adapter utils
-
-#include    <ApUtils.h>
-#include    <ApDataHandler.h>
-
-#include	<CWPParameter.h>
-#include    <txtrich.h>
-#include    <iapprefs.h>
-#include    <MuiuMsvUiServiceUtilities.h>
-
-#include    <pop3set.h>
-
-#include    <miutpars.h>        // TImMessageField
-#include    <cemailaccounts.h>
-#include    <iapprefs.h>
-
-#include    <ImumDaMailboxUtilities.h>
-#include    <SendUiConsts.h>
-
-#include <ImumDaSettingsKeys.h>
-#include <ImumDaSettingsDataCollection.h>
-
-#include    "../../../group/omacplogger.h"
-#include    <PnpProvUtil.h>
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::CWPEmailSaveItem
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CWPEmailSaveItem::CWPEmailSaveItem()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::ConstructL()
-    { 
-    iExistingSettings = new (ELeave) CDesC16ArrayFlat(2); //1 or 2 settings
-        
-    TFileName fileName;
-    Dll::FileName( fileName );
-    iDefaultName = WPAdapterUtil::ReadHBufCL( fileName,
-                                              KAdapterName, 
-                                              R_QTN_SM_DEFAULT_EMAIL_NAME );    
-    iDefaultMsvId =  0 ;
-    iDomainApi = CreateDomainApiL(); 
-    iServices = &iDomainApi->MailboxServicesL(); 
-    }
-    
-// -----------------------------------------------------------------------------    
-// Destructor
-// -----------------------------------------------------------------------------
-CWPEmailSaveItem::~CWPEmailSaveItem()
-    {
-    delete iBufConvert;
-    delete iExistingSettings;
-    delete iDefaultName;
-    delete iIapName;
-    delete iDomainApi;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SetAsDefaultL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::SetAsDefaultL()
-    {
-     iServices->SetDefaultMailboxL( iDefaultMsvId );
-    }
-    
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SummaryText
-// -----------------------------------------------------------------------------
-//
-const TDesC& CWPEmailSaveItem::SummaryText()
-    {    
-    return *iDefaultName;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SetDefaultNameL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::SetDefaultNameL( const TDesC& aDefaultName )
-    {
-    HBufC* temp = aDefaultName.AllocL();
-    delete iDefaultName;
-    iDefaultName = temp;
-    }
-    
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SetCommsDataBase
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::SetCommsDataBase( CCommsDatabase& aCommsDataBase )
-    {
-    iCommDb = &aCommsDataBase;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SaveData
-// -----------------------------------------------------------------------------
-//
-const TDesC8& CWPEmailSaveItem::SaveData()
-    {
-    iUid().iSmtpId = iSmtpTEntry.Id();
-    iUid().iPopImapId = iPopImapTEntry.Id();
-    return iUid;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::GetMailAccountNamesL
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::GetMailAccountNamesL()
-    {
-    CMsvEntry* centry = iSession->GetEntryL(KMsvRootIndexEntryId);
-    CleanupStack::PushL(centry);
-    TInt count = centry->Count();
-
-    for ( TInt j = 0; j < count; j++ )
-        {
-        if( (*centry)[j].iType == KUidMsvServiceEntry &&
-            ((*centry)[j].iMtm == KUidMsgTypePOP3  ||
-            (*centry)[j].iMtm == KUidMsgTypeIMAP4))
-            {
-            iExistingSettings->AppendL( (*centry)[j].iDetails );
-            }
-        }
-    CleanupStack::PopAndDestroy( centry );
-    return iExistingSettings->Count();
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SettingNameAlreadyExistsL
-// -----------------------------------------------------------------------------
-//
-TBool CWPEmailSaveItem::SettingNameAlreadyExistsL( const TDesC& aName, 
-                                                   TBool aReload )
-    {
-    if ( aReload )
-        {
-        GetMailAccountNamesL();
-        }
-    TInt count = iExistingSettings->Count();
-
-    for ( TInt n(0); n < count; n++ )
-        {
-        if (aName.CompareF( (*iExistingSettings)[n]) == 0 )
-            {
-            // found match
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SaveMailSettingsToMessageServerL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::SaveMailSettingsToMessageServerL( CWPEmailItem& aSmtp,
-                                                         CWPEmailItem& aPopImap,
-                                                         TBool aIsPopNotImap,
-                                                         CMsvSession* aSession )
-    {
-    __ASSERT_ALWAYS( aSession, Panic( EMailAdapterNullPointer ) );
-    
-    iSession = aSession;
-    iPopMail = aIsPopNotImap;
-    
-    ValidateSettingsNameL();
-
-    delete iIapName;
-    iIapName = NULL;
-    iIapName = aSmtp.AssociatedIapNameL();
-    if ( !iIapName )
-        {
-        iIapName = iDefaultName->Des().AllocL();
-        }
-
-    CreateMailboxEntryL( aPopImap,aSmtp ); 
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::IsValidEmailAddressL
-// -----------------------------------------------------------------------------
-//
-TBool CWPEmailSaveItem::IsValidEmailAddressL( const TDesC& aAddress )
-    {
-    TPtrC string = GetValidEmailAddressL( aAddress );
-    TImMessageField address;
-    return address.ValidInternetEmailAddress( string );    
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::GetValidEmailAddressL
-// -----------------------------------------------------------------------------
-//
-TPtrC CWPEmailSaveItem::GetValidEmailAddressL( const TDesC& aAddress )
-    {
-    TImMessageField address;
-    return address.GetValidInternetEmailAddressFromString( aAddress );    
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::FillTEntryWithSmtpData
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::FillTEntryWithSmtpData( TMsvEntry& aTEntry,
-                                               const TDesC& aIapName, 
-                                               const TDesC& aMailboxName )
-    {
-    aTEntry.iMtm = KUidMsgTypeSMTP;
-    aTEntry.iType= KUidMsvServiceEntry;
-    aTEntry.iDate.HomeTime();
-    aTEntry.iDescription.Set( aIapName );
-    aTEntry.iDetails.Set( aMailboxName );
-    aTEntry.SetVisible( EFalse );
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::FillTEntryWithPopImapData
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::FillTEntryWithPopImapData( TMsvEntry& aTEntry,
-                                                  const TMsvEntry& aSmtpEntry, 
-                                                  const TDesC& aMailboxName, 
-                                                  TBool aIsPop )
-    {
-    aTEntry = aSmtpEntry;
-    aTEntry.iRelatedId = aSmtpEntry.Id();
-    aTEntry.SetVisible( ETrue );
-    aTEntry.iType = KUidMsvServiceEntry;
-    aTEntry.iDate.HomeTime();
-    aTEntry.iDetails.Set( aMailboxName );
-    if ( aIsPop )
-        {
-        aTEntry.iMtm = KUidMsgTypePOP3;
-        }
-    else
-        {
-        aTEntry.iMtm = KUidMsgTypeIMAP4;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::Des16To8L
-// -----------------------------------------------------------------------------
-//
-const TDesC8& CWPEmailSaveItem::Des16To8L( const TDesC& aDes16 )
-    {
-    HBufC8* text = HBufC8::NewL(aDes16.Length()); 
-    delete iBufConvert;
-    iBufConvert = text;
-    iBufConvert->Des().Copy(aDes16);
-    return *iBufConvert;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::IapIdFromWapIdL
-// -----------------------------------------------------------------------------
-//
-TUint32 CWPEmailSaveItem::IapIdFromWapIdL( TUint32 aWapId ) const
-    {
-    CApUtils* apUtils = CApUtils::NewLC( *iCommDb );
-    TUint32 iapId = NULL;
-    iapId = apUtils->IapIdFromWapIdL( aWapId );
-    __ASSERT_ALWAYS( iapId, Panic( EMailAdapterInvalidId ) );
-    CleanupStack::PopAndDestroy( apUtils );
-    return iapId;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::ValidateSettingsNameL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::ValidateSettingsNameL( )
-    {
-    LOGSTRING( "CWPEmailSaveItem::ValidateSettingsNameL : Enter" );
-    if ( SettingNameAlreadyExistsL( *iDefaultName, ETrue ) )
-       {
-        
-        //before appending (XX) to name if >26, make sure length is not equal
-        //to KSettingsNameMaxLength
-        
-        
-        if(iDefaultName->Length() > 26)	
-        {
-        	TBuf<30> temp_Name (*iDefaultName);
-    		
-    		TInt count = iExistingSettings->Count();
-
-    		for ( TInt n(0); n < count; n++ )
-        	{
-        		if (temp_Name.CompareF( (*iExistingSettings)[n]) == 0 )
-            		{
-            		// found match
-            		User::Leave(KErrAlreadyExists);
-            		}
-        	}
-    		
-        }
-        
-        HBufC* newName = HBufC::NewLC( KSettingsNameMaxLength );
-        *newName = *iDefaultName;
-        
-        TPtr namePtr = newName->Des();
-        IncrementNameL( namePtr );
-        
-        while ( SettingNameAlreadyExistsL( namePtr, EFalse ) )
-            {
-           IncrementNameL( namePtr );
-            }
-        
-        delete iDefaultName;
-        iDefaultName = NULL;
-        iDefaultName = namePtr.AllocL();
-        CleanupStack::PopAndDestroy( newName );
-        }
-     LOGSTRING( "CWPEmailSaveItem::ValidateSettingsNameL : Exit" );
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::CreateMailboxEntryL
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::CreateMailboxEntryL( CWPEmailItem& aPopImapItem,
-    CWPEmailItem& aSmtpItem )
-    {
-        LOGSTRING( "CWPEmailSaveItem::CreateMailboxEntryL : Entry" );
-
-    TInt err = KErrNone;
-	TBuf<10> appIdValue;
-    
-	CImumDaSettingsData* eMailSettingsData(NULL);
-    eMailSettingsData = iServices->CreateSettingsDataL(KNullUid);
-    CleanupStack::PushL(eMailSettingsData); //1
-
-    CImIAPPreferences* apSet = CImIAPPreferences::NewLC(); //2
-    CImIAPPreferences* popImapIapSet = CImIAPPreferences::NewLC(); //3
-
-    TPtrC emailAddress = GetValidEmailAddressL(aSmtpItem.ParameterValue(
-            EWPParameterFrom));
-    TImumDaSettings::TTextEmailAddress emailAddressText;
-    emailAddressText.Append(emailAddress);
-
-    err = eMailSettingsData->SetAttr(TImumDaSettings::EKeyEmailAddress,
-            emailAddressText);
-    User::LeaveIfError(err);
-
-    TImumDaSettings::TTextMailboxName mailBoxName(*iDefaultName);
-    err = eMailSettingsData->SetAttr(TImumDaSettings::EKeyMailboxName,
-            mailBoxName);
-
-    // set IMAP/POP specific settings, create the account and set as default     
-    if ( iPopMail ) // POP3
-        {
-        // Add Pop set
-        MImumDaSettingsDataCollection& pop3Set = eMailSettingsData->AddSetL(
-                KSenduiMtmPop3Uid);
-
-
-        // set access point preferences
-        TImIAPChoice popIapChoice;
-        popIapChoice.iDialogPref = ECommDbDialogPrefDoNotPrompt;
-        popIapChoice.iIAP = 0;
-        // We get Wap AP Uid from AP adapter, so it needs to be converted here. 
-        // If correct IAP is not found try to use default IAP from CommsDB
-        TRAPD( error, popIapChoice.iIAP = IapIdFromWapIdL( aPopImapItem.AssociatedIapId() ) );
-        if ( error == KErrNone )
-            {        
-            popImapIapSet->AddIAPL(popIapChoice);
-            }
-        else if ( error == KErrNotFound )
-            {
-            popIapChoice.iIAP = 0;
-            popIapChoice.iDialogPref = ECommDbDialogPrefPrompt;
-            popImapIapSet->AddIAPL( popIapChoice );
-            }
-        else 
-            {
-            User::Leave( error );
-            }
-
-        //Set Access Point
-        err = pop3Set.SetAttr(TImumDaSettings::EKeyAccessPoint, TInt(
-                popImapIapSet->IAPPreference(0).iIAP));
-        User::LeaveIfError(err);
-
-        TImumDaSettings::TTextServerAddress serverAddress;
-        serverAddress.Append(aPopImapItem.ParameterValue(EWPParameterAddr));
-
-        err = pop3Set.SetAttr(TImumDaSettings::EKeyServer, serverAddress);
-        User::LeaveIfError(err);
-
-        TImumDaSettings::TTextUserName userName(Des16To8L(
-                aPopImapItem.ParameterValue(EWPParameterAAuthName)));
-        TImumDaSettings::TTextPassword passWord(Des16To8L(
-                aPopImapItem.ParameterValue(EWPParameterAAuthSecret)));
-
-        //set application ID
-        const TDesC& appID = aPopImapItem.ParameterValue(EWPParameterAppID);
-        appIdValue.Copy(appID);
-
-        if (userName.Length() > 0)
-            {
-            err = pop3Set.SetAttr(TImumDaSettings::EKeyUsername, userName);
-            }
-        if (passWord.Length() > 0)
-            {
-            err = pop3Set.SetAttr(TImumDaSettings::EKeyPassword, passWord);
-            }
-
-        //Set Port Value
-        TInt portVal;
-        if (GetParamValue(aPopImapItem, EWPParameterPortNbr, portVal)
-                == KErrNone)
-            {
-            err = pop3Set.SetAttr(TImumDaSettings::EKeyPort, portVal);
-            }
-
-        // Set Service parameter values [StartTLS, SSL/TLS, Normal]
-        const TDesC& popSecure = aPopImapItem.ParameterValue(
-                EWPParameterService);
-
-        if (popSecure.Compare(KSecureString) == 0)
-            {
-            err = pop3Set.SetAttr(TImumDaSettings::EKeySecurity,
-                    TImumDaSettings::EValueSecurityTls);
-            }
-        else if (popSecure.Compare(KEmailSettingSecurePortPOP) == 0)
-            {
-            err = pop3Set.SetAttr(TImumDaSettings::EKeySecurity,
-                    TImumDaSettings::EValueSecuritySsl);
-            if (!err)
-                {
-                err = pop3Set.SetAttr(TImumDaSettings::EKeyPort,
-                        KEmailSslWrappedPop3Port);
-                }
-            }
-        else
-            {
-            err = pop3Set.SetAttr(TImumDaSettings::EKeySecurity,
-                    TImumDaSettings::EValueSecurityOff);
-            }
-        
-        err = SetEmailNotificationRetrievalParamsL(*eMailSettingsData,
-                aPopImapItem, pop3Set);
-
-        }
-    else // IMAP4
-        {
-        // Add Imap set
-        MImumDaSettingsDataCollection& imap4Set = eMailSettingsData->AddSetL(
-                KSenduiMtmImap4Uid);
-        // set access point preferences
-        TImIAPChoice imapIapChoice;
-        imapIapChoice.iDialogPref = ECommDbDialogPrefDoNotPrompt;
-        imapIapChoice.iIAP = 0;
-        // We get Wap AP Uid from AP adapter, so it needs to be converted here. 
-        // If correct IAP is not found try to use default IAP from CommsDB
-        TRAPD( error, imapIapChoice.iIAP = IapIdFromWapIdL( aPopImapItem.AssociatedIapId() ) );
-        if ( error == KErrNone )
-            {        
-            popImapIapSet->AddIAPL(imapIapChoice);
-            }
-        else if ( error == KErrNotFound )
-            {
-            imapIapChoice.iIAP = 0;
-            imapIapChoice.iDialogPref = ECommDbDialogPrefPrompt;
-            popImapIapSet->AddIAPL( imapIapChoice );
-            }
-        else 
-            {
-            User::Leave( error );
-            }
-
-        //Set Access Point
-        err = imap4Set.SetAttr(TImumDaSettings::EKeyAccessPoint, TInt(
-                popImapIapSet->IAPPreference(0).iIAP));
-        User::LeaveIfError(err);
-
-        // Set incoming mail server
-        TImumDaSettings::TTextServerAddress serverAddress;
-        serverAddress.Append(aPopImapItem.ParameterValue(EWPParameterAddr));
-        err = imap4Set.SetAttr(TImumDaSettings::EKeyServer, serverAddress);
-        User::LeaveIfError(err);
-
-        TImumDaSettings::TTextUserName userName(Des16To8L(
-                aPopImapItem.ParameterValue(EWPParameterAAuthName)));
-        TImumDaSettings::TTextPassword passWord(Des16To8L(
-                aPopImapItem.ParameterValue(EWPParameterAAuthSecret)));
-        
-		//set application ID
-        const TDesC& appID = aPopImapItem.ParameterValue( EWPParameterAppID );
-        appIdValue.Copy(appID); 
-       
-        if (userName.Length() > 0)
-            {
-            err = imap4Set.SetAttr(TImumDaSettings::EKeyUsername, userName);
-            }
-        if (passWord.Length() > 0)
-            {
-            err = imap4Set.SetAttr(TImumDaSettings::EKeyPassword, passWord);
-            }
-
-        //Set Port Value
-        TInt portVal;
-        if (GetParamValue(aPopImapItem, EWPParameterPortNbr, portVal)
-                == KErrNone)
-            {
-            err = imap4Set.SetAttr(TImumDaSettings::EKeyPort, portVal);
-            }
-
-        // Set Service parameter values [StartTLS, SSL/TLS, Normal]
-        const TDesC& imapSecure = aPopImapItem.ParameterValue(
-                EWPParameterService);
-        if (imapSecure.Compare(KSecureString) == 0)
-            {
-            err = imap4Set.SetAttr(TImumDaSettings::EKeySecurity,
-                    TImumDaSettings::EValueSecurityTls);
-            }
-        else if (imapSecure.Compare(KEmailSettingSecurePortIMAP) == 0)
-            {
-            err = imap4Set.SetAttr(TImumDaSettings::EKeySecurity,
-                    TImumDaSettings::EValueSecuritySsl);
-            if (!err)
-                {
-                err = imap4Set.SetAttr(TImumDaSettings::EKeyPort,
-                        KEmailSslWrappedImap4Port);
-                }
-            }
-        else
-            {
-            err = imap4Set.SetAttr(TImumDaSettings::EKeySecurity,
-                    TImumDaSettings::EValueSecurityOff);
-            }
-
-        err = SetEmailNotificationRetrievalParamsL(*eMailSettingsData,
-                aPopImapItem, imap4Set);
-
-        }
-
-    // Add smtp set
-    MImumDaSettingsDataCollection& smtpSet = eMailSettingsData->AddSetL(
-            KSenduiMtmSmtpUid);
-
-    // set access point preferences
-    TImIAPChoice smtpIapChoice;
-    smtpIapChoice.iDialogPref = ECommDbDialogPrefDoNotPrompt;
-    smtpIapChoice.iIAP = 0;
-        // We get Wap AP Uid from AP adapter, so it needs to be converted here. 
-        // If correct IAP is not found try to use default IAP from CommsDB
-        LOGSTRING( "CWPEmailSaveItem::IapIdFromWapIdL : Entry" );
-    TRAPD( error, smtpIapChoice.iIAP = IapIdFromWapIdL( aSmtpItem.AssociatedIapId() ) );
-    if (error == KErrNone)
-        {
-        apSet->AddIAPL(smtpIapChoice);
-        }
-    else if (error == KErrNotFound)
-        {
-        smtpIapChoice.iIAP = 0;
-        smtpIapChoice.iDialogPref = ECommDbDialogPrefPrompt;
-        apSet->AddIAPL(smtpIapChoice);
-        }
-    else
-        {
-        User::Leave(error);
-        }
-        LOGSTRING( "CWPEmailSaveItem::IapIdFromWapIdL : Exit" );
-
-    //Set Access Point
-    err = smtpSet.SetAttr(TImumDaSettings::EKeyAccessPoint, TInt(
-            apSet->IAPPreference(0).iIAP));
-    User::LeaveIfError(err);
-
-    // Set outgoing server address
-    TImumDaSettings::TTextServerAddress serverAddress;
-    serverAddress.Append(aSmtpItem.ParameterValue(EWPParameterAddr));
-    err = smtpSet.SetAttr(TImumDaSettings::EKeyServer, serverAddress);
-    User::LeaveIfError(err);
-
-    TInt val;
-    // set port number
-    if (GetParamValue(aSmtpItem, EWPParameterPortNbr, val) == KErrNone)
-        {
-        err = smtpSet.SetAttr(TImumDaSettings::EKeyPort, val);
-        }
-
-    // Set Service parameter values [StartTLS, SSL/TLS, Normal]
-    const TDesC& secure = aSmtpItem.ParameterValue(EWPParameterService);
-
-    if (secure.Compare(KSecureString) == 0)
-        {
-        err = smtpSet.SetAttr(TImumDaSettings::EKeySecurity,
-                TImumDaSettings::EValueSecurityTls);
-        }
-    else if (secure.Compare(KEmailSettingSecurePortSMTP) == 0)
-        {
-        err = smtpSet.SetAttr(TImumDaSettings::EKeySecurity,
-                TImumDaSettings::EValueSecuritySsl);
-        if (!err)
-            {
-            smtpSet.SetAttr(TImumDaSettings::EKeyPort,
-                    KEmailSslWrappedSmtpPort);
-            }
-        }
-    else
-        {
-        err = smtpSet.SetAttr(TImumDaSettings::EKeySecurity,
-                TImumDaSettings::EValueSecurityOff);
-        }
-
-        LOGSTRING( "Des16To8L : Entry" );
-    TImumDaSettings::TTextUserName smtpUserName(Des16To8L(
-            aSmtpItem.ParameterValue(EWPParameterAAuthName)));
-        LOGSTRING( "Des16To8L : Exit" );
-        LOGSTRING( "Des16To8L : Entry" );
-    TImumDaSettings::TTextPassword smtpPassWord(Des16To8L(
-            aSmtpItem.ParameterValue(EWPParameterAAuthSecret)));
-        LOGSTRING( "Des16To8L : Exit" );
-
-    if (smtpUserName.Length() > 0)
-        {
-        err = smtpSet.SetAttr(TImumDaSettings::EKeyUsername, smtpUserName);
-        }
-    if (smtpPassWord.Length() > 0)
-        {
-        err = smtpSet.SetAttr(TImumDaSettings::EKeyPassword, smtpPassWord);
-        }
-
-    //Set User Preferences
-    err = smtpSet.SetAttr(TImumDaSettings::EKeyReplyToAddress,
-            emailAddressText);
-
-        LOGSTRING( "Emailservices::CreateMailboxL : Entry" );
-    iDefaultMsvId = iServices->CreateMailboxL(*eMailSettingsData);
-        LOGSTRING( "Emailservices::CreateMailboxL : Exit" );
-
-    SetEmailAppIdForPnpServiceL(appIdValue);
-    
-    
-    CleanupStack::PopAndDestroy(3);
-        LOGSTRING( "CWPEmailSaveItem::CreateMailboxEntryL : Exit" );
-
-    return err;
-    }
-void CWPEmailSaveItem::SetEmailAppIdForPnpServiceL(TDesC& appIDValue)
-{
-	
-	
-
-	//if PnPMS service launched by Email client for email settings download
-	//then set application ID of mail box into Cenrep.
-	CPnpProvUtil* prov = CPnpProvUtil::NewLC();
-	// use contant value
-	const TUint32 uidVal = 0x100058C5;
-	TUint32 uidValCenrep = prov->GetApplicationUidL();
-	
-	if(uidVal == uidValCenrep)
-	prov->SetProvAdapterAppIdL(appIDValue); 
-	
-	CleanupStack::PopAndDestroy();
-
-	
-}
-
-
-void CWPEmailSaveItem::IncrementNameL(TDes& aName)
-    {
-    LOGSTRING( "CWPEmailSaveItem::IncrementNameL: Enter" );
-    
-    TInt length = aName.Length();
-
-    // If this fails it means that at least default name should have been assigned
-    // to item.
-    //__ASSERT_ALWAYS(length > 0, Panic(EMEUNameEmpty));
-    
-	    	
-    TInt newOrdinal = 0;
-    TInt index = length-1;
-    TInt charValue = aName[index];
-
-    // Check if name ends with ')'
-    if (charValue == ')')
-        {
-        TBool cutBetweenIndexes = EFalse;
-        index--;
-        TInt multi = 1;
-        while ( index >= 0)
-            {
-            charValue = aName[index];
-            TChar ch(charValue);
-
-            if (!ch.IsDigit())
-                {
-                // There was non-digits inside the brackets.
-                if ( charValue == '(')
-                    {
-                    // We found the start
-                    cutBetweenIndexes = ETrue;
-                    index--;
-                    break;
-                    }
-                else
-                    {
-                    // There was a non-digit inside the '(' and ')'
-                    // We just append after the original name.
-                    break;
-                    }
-                } // if
-            else
-                {
-                TInt newNum = ch.GetNumericValue();
-                if (multi <= 100000000)
-                    {
-                    // If there's a pattern (007) then this makes it to be (007)(01)
-                    if (newNum == 0 && newOrdinal != 0 && multi > 10)
-                        {
-                        break;
-                        }
-                    newOrdinal += newNum * multi;
-                    multi*=10;
-                    }//0010
-                else
-                    {
-                    newOrdinal = 0;
-                    break;
-                    }
-                }
-            index--;
-            } // while
-
-        // There was correct pattern of (0000) so now we delete it.
-        if (cutBetweenIndexes)
-            {
-            aName.Delete(index+1, length-index);
-            }
-        else
-            {
-            // This case is for example 12345) so we get 12345)(01)
-            newOrdinal = 0;
-            }
-        } // if
-
-    // Add one to the ordinal read from the old name
-    newOrdinal++;
-
-    // Check that there's enough space to add the ordinal
-    TInt maxLength = aName.MaxLength();
-    TInt ordinalSpace(4); // Ordinal space comes from (00) so it's 4
-    length = aName.Length();
-    if (length + ordinalSpace > maxLength)
-        {
-        aName.Delete(maxLength-ordinalSpace, ordinalSpace);
-        }
-
-    // Append the ordinal at the end of the name
-    HBufC* old = aName.AllocLC();
-
-    _LIT(KFormatSpecLessTen, "%S(0%d)");
-    _LIT(KFormatSpecOverTen, "%S(%d)");
-    if (newOrdinal < 10)
-        {
-        aName.Format(KFormatSpecLessTen, old, newOrdinal);
-        }
-    else
-        {
-        aName.Format(KFormatSpecOverTen, old, newOrdinal);
-        }
-    CleanupStack::PopAndDestroy(old); // old
-    
-    LOGSTRING( "CWPEmailSaveItem::IncrementNameL: Exit" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::IncrementNameL
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::IncrementNameL(TDes& aName, TInt aMaxLength)
-    {
-    LOGSTRING( "CWPEmailSaveItem::IncrementNameL: Enter" );
-    
-    TInt length = aName.Length();
-
-    // If this fails it means that at least default name should have been assigned
-    // to item.
-    //__ASSERT_ALWAYS(length > 0, Panic(EMEUNameEmpty));
-    
-    TInt newOrdinal = 0;
-    TInt index = length-1;
-    TInt charValue = aName[index];
-
-    // Check if name ends with ')'
-    if (charValue == ')')
-        {
-        TBool cutBetweenIndexes = EFalse;
-        index--;
-        TInt multi = 1;
-        while ( index >= 0)
-            {
-            charValue = aName[index];
-            TChar ch(charValue);
-
-            if (!ch.IsDigit())
-                {
-                // There was non-digits inside the brackets.
-                if ( charValue == '(')
-                    {
-                    // We found the start
-                    cutBetweenIndexes = ETrue;
-                    index--;
-                    break;
-                    }
-                else
-                    {
-                    // There was a non-digit inside the '(' and ')'
-                    // We just append after the original name.
-                    break;
-                    }
-                } // if
-            else
-                {
-                TInt newNum = ch.GetNumericValue();
-                if (multi <= 100000000)
-                    {
-                    // If there's a pattern (007) then this makes it to be (007)(01)
-                    if (newNum == 0 && newOrdinal != 0 && multi > 10)
-                        {
-                        break;
-                        }
-                    newOrdinal += newNum * multi;
-                    multi*=10;
-                    }//0010
-                else
-                    {
-                    newOrdinal = 0;
-                    break;
-                    }
-                }
-            index--;
-            } // while
-
-        // There was correct pattern of (0000) so now we delete it.
-        if (cutBetweenIndexes)
-            {
-            aName.Delete(index+1, length-index);
-            }
-        else
-            {
-            // This case is for example 12345) so we get 12345)(01)
-            newOrdinal = 0;
-            }
-        } // if
-
-    // Add one to the ordinal read from the old name
-    newOrdinal++;
-
-    // Check that there's enough space to add the ordinal
-    TInt maxLength = aMaxLength;
-    TInt ordinalSpace(4); // Ordinal space comes from (00) so it's 4
-    length = aName.Length();
-    if (length + ordinalSpace > maxLength)
-        {
-        aName.Delete(maxLength-ordinalSpace, ordinalSpace);
-        }
-
-    // Append the ordinal at the end of the name
-    HBufC* old = aName.AllocLC();
-
-    _LIT(KFormatSpecLessTen, "%S(0%d)");
-    _LIT(KFormatSpecOverTen, "%S(%d)");
-    if (newOrdinal < 10)
-        {
-        aName.Format(KFormatSpecLessTen, old, newOrdinal);
-        }
-    else
-        {
-        aName.Format(KFormatSpecOverTen, old, newOrdinal);
-        }
-    CleanupStack::PopAndDestroy(old); // old
-    
-    LOGSTRING( "CWPEmailSaveItem::IncrementNameL: Exit" );
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::ValidateText
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::ValidateText(const TDesC& serverAddress)
-{
-	
-	// Check if the name of the mailbox contains only 
-    // white space characters.
-    TInt length = serverAddress.Length();
-    	
-		
-    for( TInt i = 0 ; i < length ; i++ )
-    	{
-    		TChar tempChar(serverAddress[i]);
-    		if( !tempChar.IsSpace() )
-    			{
-    			// If the character isn't a white space character 
-    			// then KErrNone is returned.
-    			return KErrNone;
-    			}
-    	}
-    return KErrGeneral;
-    
-}
-
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::ValidateServerAddress
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::ValidateServerAddress(const TDesC& serverAddress)
-{
-	
-	TInt result = ValidateText(serverAddress);
-
-    // Check for valid server address
-    if ( result == KErrNone )
-        {
-        TBool ok = EFalse;
-        TRAPD( error, ok = MsvUiServiceUtilities::IsValidDomainL(serverAddress) );
-
-        result = ( error == KErrNone ) && ok ? KErrNone : KErrGeneral;
-        }
-
-    return result;
-    
-}
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::ValidatePortNo
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::ValidatePortNo(const TUint& portVal)
-{
-	TInt result = (portVal >= KEmailPortMinValue) && (portVal <= KEmailPortMaxValue) ? KErrNone : KErrArgument;
-	return result;	
-}
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SetEmailNotificationRetrievalParamsL
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::SetEmailNotificationRetrievalParamsL(
-        CImumDaSettingsData& aEmailSettingsData, CWPEmailItem& aPopImapItem,
-        MImumDaSettingsDataCollection& aPopImapSet)
-    {
-        LOGSTRING( "CWPEmailSaveItem::SetEmailNotificationRetrievalParamsL : Entry" );
-    TInt err = KErrGeneral;
-
-    //Set EMN
-    /*
-     Characteristic/name: APPLICATION/EMN
-     Status: Optional.
-     Occurs: 0/1.
-     Default value: 0.
-     Used values: 0, 1, 2.
-     OFF = 0.
-     ON = 1.
-     VALID = 2.
-     Interpretation:
-     Specifies the usage of OMA EMN. If the value is OFF (0), OMA EMN
-     is disabled. If the value is ON (1) OMA EMN is enabled. If the value
-     is VALID (2) OMA EMN is enabled with proxy whitelist validation.
-     This means that OMA EMN messages are accepted only from
-     trusted push proxy gateways. Whitelist validation is made
-     based on Push Validation document available in Forum Nokia.
-     */
-
-    const TDesC& emnParamName(KParamEMN);
-
-    TBool validUserPass = EFalse;
-    // Check whether Username and Password are there in the incoming settings
-
-    err = ValidateUserNamePassword(aPopImapSet, validUserPass);
-    if (!err && validUserPass)
-        {
-        err = SetIntParam(aEmailSettingsData, aPopImapItem, emnParamName);
-        }
-
-    TInt emnValSet;
-    TInt err1;
-    err1 = aEmailSettingsData.GetAttr(TImumDaSettings::EKeyAutoNotifications,
-            emnValSet);
-
-    if (((!err && !err1 && !emnValSet) || err) && validUserPass)
-        {
-        const TDesC& onlineParamName(KParamONLINE);
-        // Check whether Username and Password are there in the incoming settings
-
-        TInt onlineValRec;
-        err = GetParamValue(aPopImapItem, onlineParamName, onlineValRec);
-        if (emnValSet && !err && onlineValRec)
-            {
-            //Set EMN to Off before setting Online
-            err = aEmailSettingsData.SetAttr(
-                    TImumDaSettings::EKeyAutoNotifications,
-                    TImumDaSettings::EValueNotificationsOff);
-            }
-        //Set Online
-        /*
-         Characteristic/name: APPLICATION/ONLINE
-         Status: Optional.
-         Occurs: 0/1. 
-         Default value: 0.
-         Used values: 0 or 1.
-         OFF = 0.
-         ON = 1.
-         Interpretation: 
-         Specifies the online mode. Online mode works with APPLICATION/POLL and
-         APPLICATION/CS parameters in following way:
-         Connection shedule parameter specifies time windows when always online mode
-         is used. Polling can be used to shorter polling interval of IMAP IDLE. This
-         is useful option when network/NAT drops connection after short inactivity
-         */
-        if (!err)
-            {
-            err = SetIntParam(aEmailSettingsData, aPopImapItem,
-                    onlineParamName);
-            }
-
-        }
-
-    const TDesC& csParamName(KParamCS);
-    const TDesC& csParamVal(aPopImapItem.ParameterValue(csParamName));
-
-    if (csParamVal.Length())
-        {
-            LOGSTRING2( "[Provisioning] CWPEmailSaveItem::SetEmailNotificationRetrievalParamsL: csParamVal value %i", csParamVal );
-
-        TLex csParamValue(csParamVal);
-        TInt64 retStartHourMinValue = KImumMboxDefaultAutoRetrievalStartHour;
-        TInt64 retEndHourMinValue = KImumMboxDefaultAutoRetrievalEndHour;
-
-        //Get the Retrieval Start and End Hours, first
-        err = GetRetHoursValueL(csParamValue, '-', retStartHourMinValue);
-
-        if (!err)
-            {
-            err = GetRetHoursValueL(csParamValue, '<', retEndHourMinValue);
-            }
-
-        //Set Retrieval Days
-        /* 
-         Characteristic/name: APPLICATION/CS
-         Status: Optional.
-         Occurs: 0/1.
-         Default value: empty.
-         Used values: empty or time<days>; 00:00-23:59<0,1,2,3,4,5,6>
-         Sunday = 0.
-         Monday = 1.
-         Tuesday = 2.
-         Wednesday = 3.
-         Thursday = 4.
-         Friday = 5.
-         Saturday = 6.
-         Interpretation:
-         Specifies the connection schedule when always online or polling is
-         active. When value is empty, connection schedule is disabled. If
-         connection shedule is inactivated, polling is still enabled.
-         */
-        //Setting Retrieval Days, first, parse the CS parm, till the end
-        if (!err)
-            {
-            err = SetRetDaysL(csParamValue, aEmailSettingsData);
-            }
-
-        // If there no error in parsing the CS parameter, then set the Retrieval Start and End Hours
-        if (!err && retStartHourMinValue
-                > KImumMboxDefaultAutoRetrievalStartHour)
-            {
-            //Set Retrieval Start Hour
-            err = aEmailSettingsData.SetAttr(
-                    TImumDaSettings::EKeyAutoRetrievalStartHour,
-                    retStartHourMinValue);
-            }
-
-        if (!err && retEndHourMinValue > KImumMboxDefaultAutoRetrievalEndHour)
-            {
-            //Set Retrieval End Hour
-            err = aEmailSettingsData.SetAttr(
-                    TImumDaSettings::EKeyAutoRetrievalEndHour,
-                    retEndHourMinValue);
-            }
-
-        }
-
-    const TDesC& pollParamName(KParamPOLL);
-    //Set Poll
-    /*
-     Characteristic/name: APPLICATION/POLL
-     Status: Optional.
-     Occurs: 0/1.
-     Default value: 0.
-     Used values: 0 (off), or 16-bit unsigned integer.
-     Interpretation:
-     Specifies the polling period in minutes. Zero indicates that
-     polling is disabled.
-     */
-    err = SetIntParam(aEmailSettingsData, aPopImapItem, pollParamName);
-
-    const TDesC& lmsParamName(KParamLMS);
-    TInt onlineParamVal;
-    err = aEmailSettingsData.GetAttr(TImumDaSettings::EKeyAutoRetrieval,
-            onlineParamVal);
-
-    if ((!err && onlineParamVal == KImumMboxDefaultAutoRetrieval) || err)
-        {
-        //Automatic Retrieval is off, then set Mailbox Update Limit to the value received
-        /*
-         Characteristic/name: APPLICATION/LMS
-         Status: Optional.
-         Occurs: 0/1.
-         Default value: 0.
-         Used values: 0 (all mails) or 32-bit unsigned integer.
-         Interpretation:
-         Specifies the local mailbox size. This defines the amount of mails kept in
-         local mailbox. If this value has been defined to zero (all), then all mails
-         are fetched to the mobile (local mailbox). If this value is define for
-         example 10, then only 10 newest mails are kept in local mailbox.
-         */
-        err = SetIntParam(aEmailSettingsData, aPopImapItem, lmsParamName);
-        }
-
-        LOGSTRING( "CWPEmailSaveItem::SetEmailNotificationRetrievalParamsL : Exit" );
-
-    return err;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SetIntParam
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::SetIntParam(CImumDaSettingsData& aEmailSettingsData,
-        CWPEmailItem& aPopImapItem, const TDesC& aParamName)
-    {
-    TInt err = KErrGeneral;
-    TInt paramMinValue;
-    TInt paramMaxValue;
-    TInt paramKey = 0x0000000;
-
-    if (aParamName.CompareF(KParamEMN) == 0)
-        {
-        paramMinValue = TImumDaSettings::EValueNotificationsOff;
-        paramMaxValue = TImumDaSettings::EValueNotificationsHome;
-        paramKey = TImumDaSettings::EKeyAutoNotifications;
-        }
-    else if (aParamName.CompareF(KParamONLINE) == 0)
-        {
-        paramMinValue = TImumDaSettings::EValueAutoOff;
-        paramMaxValue = TImumDaSettings::EValueAutoHomeNetwork;
-        paramKey = TImumDaSettings::EKeyAutoRetrieval;
-        }
-    else if (aParamName.CompareF(KParamPOLL) == 0)
-        {
-        paramMinValue = KImumPollMinUpdateLimit;
-        paramMaxValue = KImumPollMaxUpdateLimit;
-        }
-
-    else if (aParamName.CompareF(KParamLMS) == 0)
-        {
-        paramMinValue = KImumMboxInboxMinUpdateLimit;
-        paramMaxValue = KImumMboxInboxMaxUpdateLimit;
-        paramKey = TImumDaSettings::EKeyInboxUpdateLimit;
-        }
-
-    else
-        {
-        return err;
-        }
-
-    TInt val;
-    err = GetParamValue(aPopImapItem, aParamName, val);
-    if (!err)
-        {
-        if (val >= paramMinValue && val <= paramMaxValue)
-            {
-            if (aParamName.CompareF(KParamPOLL) != 0)
-                {
-                //Set the value for the Parm
-                err = aEmailSettingsData.SetAttr(paramKey, val);
-                }
-            else
-                {
-                //Set the value for Poll
-                err = SetPollValue(aEmailSettingsData, val);
-                }
-            }
-        else
-            {
-            return KErrOverflow;
-            }
-        }
-    return err;
-    }
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::GetParamValue
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::GetParamValue(CWPEmailItem& aEmailItem,
-        const TInt aParamID, TInt& aVal)
-    {
-    TLex paramValue(aEmailItem.ParameterValue(aParamID));
-    return (paramValue.Val(aVal));
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::GetParamValue
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::GetParamValue(CWPEmailItem& aEmailItem,
-        const TDesC& aParamName, TInt& aVal)
-    {
-    TLex paramValue(aEmailItem.ParameterValue(aParamName));
-    return (paramValue.Val(aVal));
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::GetRetParamValuesFromCS
-// -----------------------------------------------------------------------------
-//
-TBool CWPEmailSaveItem::GetRetParamValuesFromCS(TLex& aCSParamValue,
-        const TInt aTokenMark, TPtrC& aParm)
-    {
-    aCSParamValue.Mark();
-    TInt next = aCSParamValue.Peek();
-    TChar cnext = aCSParamValue.Peek();
-    TInt count = 0;
-
-    while (!cnext.Eos())
-        {
-        if (next == aTokenMark)
-            {
-            aParm.Set(aCSParamValue.MarkedToken());
-            aCSParamValue.Inc();
-            return ETrue;
-            }
-        aCSParamValue.Inc();
-        next = aCSParamValue.Peek();
-        cnext = aCSParamValue.Peek();
-        count++;
-        }
-
-    while (count--)
-        {
-        aCSParamValue.UnGet();
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::GetRetHoursValueL
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::GetRetHoursValueL(TLex& aCSParamValue,
-        TInt aTokenMark, TInt64& aRetHourMinValue)
-    {
-    TInt err = KErrGeneral;
-    TPtrC retHour(KNullDesC);
-    TPtrC retMin(KNullDesC);
-
-    if (GetRetParamValuesFromCS(aCSParamValue, KColonChar, retHour)
-            && GetRetParamValuesFromCS(aCSParamValue, aTokenMark, retMin))
-        {
-        if (retHour.Length() != KRetHourStandardLength || retMin.Length()
-                != KRetMinStandardLength)
-            {
-            return KErrOverflow;
-            }
-        TLex lexRetHour(retHour);
-        TLex lexRetMin(retMin);
-        TInt64 valRetHour;
-        TInt64 valRetMin;
-
-        err = ValidateRetHourorMin(lexRetHour);
-
-        if (!err)
-            {
-            err = ValidateRetHourorMin(lexRetMin);
-            }
-
-        if (!err)
-            {
-            err = lexRetHour.Val(valRetHour);
-            }
-
-        if (!err)
-            {
-            err = lexRetMin.Val(valRetMin);
-            }
-
-        if (!err)
-            {
-            //Check for the boundary values
-            if (valRetHour >= KRetHourLowerBound && valRetHour
-                    <= KRetHourUpperBound && valRetMin >= KRetMinLowerBound
-                    && valRetMin <= KRetMinUpperBound)
-                {
-                const TDesC& retSecMilliSec(KRetSecMilliSec);
-                TInt retHourMinMaxSize = retHour.Size() + retMin.Size()
-                        + retSecMilliSec.Size();
-                TInt retHourMaxSize = retHour.Size();
-                TInt retMinMaxSize = retMin.Size();
-                HBufC* bufRetHour = HBufC::NewL(retHourMaxSize);
-                HBufC* bufRetMin = HBufC::NewL(retMinMaxSize);
-                HBufC* bufRetHourMin = HBufC::NewL(retHourMinMaxSize);
-
-            TPtr ptrRetHour(bufRetHour->Des());
-            //Change the Absolute Integer Hour value to a string 
-            GetRetHourorMinfromIntValue(retHour, valRetHour, ptrRetHour);
-
-            TPtr ptrRetMin(bufRetMin->Des());
-            //Change the Absolute Integer Min value to a string 
-            GetRetHourorMinfromIntValue(retMin, valRetMin, ptrRetMin);
-
-            TPtr retHourMin(bufRetHourMin->Des());
-            retHourMin.Append(ptrRetHour);
-            retHourMin.Append(ptrRetMin);
-            //Make the string to be in proper Time format
-            retHourMin.Append(retSecMilliSec);
-
-                    LOGSTRING2( "[Provisioning] CWPEmailSaveItem::GetRetHoursValueL: retHourMin value %i", retHourMin );
-
-            TTime timeretHour(retHourMin);
-            aRetHourMinValue = timeretHour.Int64();
-            delete bufRetHourMin;
-            delete bufRetMin;
-            delete bufRetHour;
-
-                }
-            else
-                {
-                return KErrOverflow;
-                }
-            }
-
-        }
-
-    return err;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SetRetDaysL
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::SetRetDaysL(TLex& aCSParamValue,
-        CImumDaSettingsData& aEmailSettingsData)
-    {
-    TInt err = KErrGeneral;
-    TPtrC retDays(KNullDesC);
-
-    if (GetRetParamValuesFromCS(aCSParamValue, KGTChar, retDays))
-        {
-            LOGSTRING2( "[Provisioning] CWPEmailSaveItem::SetRetDaysL: retDays value, %i", retDays );
-
-        const TDesC& comma(KComma);
-        const TInt retDaysMaxSize = retDays.Size() + comma.Size();
-        HBufC* bufRetDays = HBufC::NewL(retDaysMaxSize);
-        *bufRetDays = retDays;
-
-        TPtr ptrRetDays(bufRetDays->Des());
-        //Append comma to demarcate the last day
-        ptrRetDays.Append(comma);
-
-        if (ptrRetDays.Length() > KRetDaysStandardMaxLength)
-            {
-            delete bufRetDays;
-            return KErrOverflow;
-            }
-
-        TLex lexRetDays(ptrRetDays);
-        TChar next = lexRetDays.Peek();
-        TInt retDaysFlag = 0x0000000;
-
-        while (!next.Eos())
-            {
-            TPtrC retDay(KNullDesC);
-
-            if (GetRetParamValuesFromCS(lexRetDays, KCommaChar, retDay))
-                {
-                if (retDay.Length() != KRetDayStandardLength)
-                    {
-                    delete bufRetDays;
-                    return KErrOverflow;
-                    }
-                TLex lexRetDay(retDay);
-                TInt retDayVal;
-                    LOGSTRING2( "[Provisioning] CWPEmailSaveItem::SetRetDaysL: retDay value, %i", retDay );
-                
-                err = lexRetDay.Val(retDayVal);
-                if (!err)
-                    {
-                    switch (retDayVal)
-                        {
-                        case KRetSunday:
-                            {
-                            retDaysFlag |= TImumDaSettings::EFlagSunday;
-                            break;
-                            }
-                        case KRetMonday:
-                            {
-                            retDaysFlag |= TImumDaSettings::EFlagMonday;
-                            break;
-                            }
-                        case KRetTuesday:
-                            {
-                            retDaysFlag |= TImumDaSettings::EFlagTuesday;
-                            break;
-                            }
-                        case KRetWednesday:
-                            {
-                            retDaysFlag |= TImumDaSettings::EFlagWednesday;
-                            break;
-                            }
-                        case KRetThursday:
-                            {
-                            retDaysFlag |= TImumDaSettings::EFlagThursday;
-                            break;
-                            }
-                        case KRetFriday:
-                            {
-                            retDaysFlag |= TImumDaSettings::EFlagFriday;
-                            break;
-                            }
-                        case KRetSaturday:
-                            {
-                            retDaysFlag |= TImumDaSettings::EFlagSaturday;
-                            break;
-                            }
-                        default:
-                            {
-                            delete bufRetDays;
-                            return KErrOverflow;
-                            }
-                        }
-                    }
-                else
-                    {
-                    break;
-                    }
-                    
-                }
-
-            next = lexRetDays.Peek();
-            }
-
-        if (!err && retDaysFlag)
-            {
-            //If the flag is set, set the value to Retrieval Days
-            err = aEmailSettingsData.SetAttr(
-                    TImumDaSettings::EKeyAutoRetrievalDays, retDaysFlag);
-            }
-
-        delete bufRetDays;
-        }
-
-    return err;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::SetPollValue
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::SetPollValue(CImumDaSettingsData& aEmailSettingsData,
-        TInt aPollValue)
-    {
-    TInt err = KErrGeneral;
-    TInt pollhour = aPollValue / 60;
-    TInt pollmin = aPollValue % 60;
-    TInt pollval = pollhour;
-
-    if (!pollhour)
-        {
-        pollval = pollmin;
-        }
-
-    //Consider only the absolute minutes and absolute hours 
-    if ((pollhour && !pollmin) || (!pollhour && pollmin))
-        {
-        TInt val = 0;
-        switch (pollval)
-            {
-            case KPoll5minutes:
-                {
-                val = TImumDaSettings::EValue5Minutes;
-                break;
-                }
-            case KPoll15minutes:
-                {
-                val = TImumDaSettings::EValue15Minutes;
-                break;
-                }
-            case KPoll30minutes:
-                {
-                val = TImumDaSettings::EValue30Minutes;
-                break;
-                }
-            case KPoll1Hour:
-                {
-                val = TImumDaSettings::EValue1Hour;
-                break;
-                }
-            case KPoll2Hours:
-                {
-                val = TImumDaSettings::EValue2Hours;
-                break;
-                }
-            case KPoll4Hours:
-                {
-                val = TImumDaSettings::EValue4Hours;
-                break;
-                }
-            case KPoll6Hours:
-                {
-                val = TImumDaSettings::EValue6Hours;
-                break;
-                }
-            }
-        if (val)
-            {
-            //If val is set, set it to Poll
-            err = aEmailSettingsData.SetAttr(
-                    TImumDaSettings::EKeyAutoRetrievalInterval, val);
-            }
-        }
-    return err;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::ValidateUserNamePassword
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::ValidateUserNamePassword(
-        MImumDaSettingsDataCollection& aPopImapSet, TBool& aValidUserPass )
-    {
-    TInt err = KErrGeneral;
-    TImumDaSettings::TTextUserName userName(KNullDesC8);
-    TImumDaSettings::TTextPassword passWord(KNullDesC8);
-
-    err = aPopImapSet.GetAttr(TImumDaSettings::EKeyUsername, userName);
-
-    if (!err)
-        {
-        err = aPopImapSet.GetAttr(TImumDaSettings::EKeyPassword, passWord);
-        }
-
-    if (!err && userName.Length() > 0 && passWord.Length() > 0)
-        {
-        aValidUserPass = ETrue;
-        }
-
-    return err;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::GetRetHourorMinfromIntValue
-// -----------------------------------------------------------------------------
-//
-void CWPEmailSaveItem::GetRetHourorMinfromIntValue(TPtrC& aRetHourMin,
-        TInt64 aValRetHourMin, TPtr& aPtrRetHourMin)
-    {
-    const TDesC& retLeadingZero(KRetLeadingZero);
-    TInt retHourMaxSize = aRetHourMin.Size();
-    HBufC* bufRetHourMin = HBufC::NewL(retHourMaxSize);
-    HBufC* TempBufRetHourMin = HBufC::NewL(retHourMaxSize);
-
-    TPtr ptrTempRetHourMin(TempBufRetHourMin->Des());
-    ptrTempRetHourMin.Num(aValRetHourMin);
-        LOGSTRING2( "[Provisioning] CWPEmailSaveItem::GetRetHoursValueL: ptrTempRetHourMin value, %i ", ptrTempRetHourMin );
-
-    if (aValRetHourMin < KRetHourMinLeadLimit)
-        {
-        aPtrRetHourMin.Append(retLeadingZero);
-        }
-
-    aPtrRetHourMin.Append(ptrTempRetHourMin);
-        LOGSTRING2( "[Provisioning] CWPEmailSaveItem::GetRetHoursValueL: aPtrRetHourMin value %i", aPtrRetHourMin );
-    
-    delete TempBufRetHourMin;
-    delete bufRetHourMin;
-    }
-
-// -----------------------------------------------------------------------------
-// CWPEmailSaveItem::ValidateRetHourorMin
-// -----------------------------------------------------------------------------
-//
-TInt CWPEmailSaveItem::ValidateRetHourorMin(TLex& aRetHourMin)
-    {
-    TChar cnext = aRetHourMin.Peek();
-    TInt count = 0;
-
-    while (!cnext.Eos())
-        {
-        if (!(cnext.IsDigit()))
-            {
-            return KErrGeneral;
-            }
-        aRetHourMin.Inc();
-        cnext = aRetHourMin.Peek();
-        count++;
-        }
-
-    while (count--)
-        {
-        aRetHourMin.UnGet();
-        }
-
-    return KErrNone;
-    }
-//  End of File