creator/engine/src/creator_mailbox.cpp
changeset 55 2d9cac8919d3
parent 53 819e59dfc032
child 56 392f7045e621
--- a/creator/engine/src/creator_mailbox.cpp	Mon Oct 04 10:09:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,797 +0,0 @@
-/*
-* Copyright (c) 2010 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: 
-*
-*/
-
-
-#include <etelmm.h>
-#include <msvapi.h>
-
-#include "engine.h"
-#include "enginewrapper.h"
-#include "creator_mailbox.h" 
-#include "creator_traces.h"
-
-static const TInt KMailboxesFieldLength = 160;
-
-_LIT(KCreatorMailboxesPrefixName, "CR_");
-
-_LIT(KDefaultIncomingServer, "mail.example.com");
-_LIT(KDefaultOutgoingServer, "smtp.example.com");
-_LIT(KInternet, "internet");
-
-
-//----------------------------------------------------------------------------
-
-CMailboxesParameters::CMailboxesParameters()
-    {
-    LOGSTRING("Creator: CMailboxesParameters::CMailboxesParameters");
-
-    iIncomingPort = KUndef;
-    iOutgoingPort = KUndef;
-    iMaxEmailSize = KUndef;
-    iSyncRate = KUndef;
-    iAttachmentFetchSize = KUndef;
-    iAttachmentSizeLimit = KUndef;
-    iBodyTextSizeLimit = KUndef;
-    iAttachmentFetchSize = KUndef;
-    iInboxSyncLimit = -1; // -1 = All
-    iMailboxSyncLimit = -1; // -1 = All    
-    iToCCIncludeLimit = KUndef;
-    iImapIdleTimeout = KUndef;
-    
-    /*iMailboxName = HBufC::New(KMailboxesFieldLength);
-    iAccessPoint = HBufC::New(KMailboxesFieldLength);
-    iMyMailAddress = HBufC::New(KMailboxesFieldLength);
-    iOutgoingMailServer = HBufC::New(KMailboxesFieldLength);
-    iUserName = HBufC::New(KMailboxesFieldLength);
-    iPassword = HBufC::New(KMailboxesFieldLength);
-    iIncomingMailServer = HBufC::New(KMailboxesFieldLength);*/
-    }
-
-CMailboxesParameters::~CMailboxesParameters()
-    {
-    LOGSTRING("Creator: CMailboxesParameters::~CMailboxesParameters");
-
-    /*delete iIncomingMailServer;
-    delete iPassword;
-    delete iUserName;
-    delete iOutgoingMailServer;
-    delete iMyMailAddress;
-    delete iAccessPoint;
-    delete iMailboxName;*/
-    
-    delete iMailboxName;
-    delete iIncomingLoginName;
-    delete iIncomingPassword;
-    delete iIncomingServerName;
-    delete iIncomingConnectionMethod;
-    delete iIncomingFolderPath;
-    delete iPathSeparator;
-    delete iOutgoingLoginName;
-    delete iOutgoingPassword;
-    delete iOutgoingServerName;
-    delete iOutgoingConnectionMethod;
-    delete iOwnEmailAddress;
-    delete iOwnEmailAlias;
-    delete iReceiptAddress;
-    delete iReplyToAddress;
-    }
-
-//----------------------------------------------------------------------------
-
-CCreatorMailboxes* CCreatorMailboxes::NewL(CCreatorEngine* aEngine)
-    {
-    CCreatorMailboxes* self = CCreatorMailboxes::NewLC(aEngine);
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CCreatorMailboxes* CCreatorMailboxes::NewLC(CCreatorEngine* aEngine)
-    {
-    CCreatorMailboxes* self = new (ELeave) CCreatorMailboxes;
-    CleanupStack::PushL(self);
-    self->ConstructL(aEngine);
-    return self;
-    }
-
-CCreatorMailboxes::CCreatorMailboxes()
-    {    
-    }
-
-void CCreatorMailboxes::ConstructL(CCreatorEngine* aEngine)
-    {
-    LOGSTRING("Creator: CCreatorMailboxes::ConstructL");
-
-    iEngine = aEngine;
-    }
-
-CCreatorMailboxes::~CCreatorMailboxes()
-    {
-    LOGSTRING("Creator: CCreatorMailboxes::~CCreatorMailboxes");
-    if ( iEngine && iEntryIds.Count() )
-        {
-        TRAP_IGNORE( iEngine->WriteEntryIdsToStoreL( iEntryIds, KUidDictionaryUidMailbox ) );
-        }
-    iEntryIds.Reset();
-    iEntryIds.Close();
-    
-    if (iParameters)
-        delete iParameters;
-    }
-
-//----------------------------------------------------------------------------
-
-TBool CCreatorMailboxes::AskDataFromUserL(TInt aCommand)
-    {
-    LOGSTRING("Creator: CCreatorMailboxes::AskDataFromUserL");
-    
-    CCreatorModuleBase::AskDataFromUserL( aCommand );//ignore retval
-    
-    if ( aCommand == ECmdDeleteMailboxes )
-        {
-        return iEngine->GetEngineWrapper()->YesNoQueryDialog( _L("Delete all mailboxes?"), this, ECreatorModuleDelete );
-        }
-    else if ( aCommand ==  ECmdDeleteCreatorMailboxes )
-        {
-        return iEngine->GetEngineWrapper()->YesNoQueryDialog( _L("Delete all mailboxes created with Creator?"), this, ECreatorModuleDelete );
-        }
-    return iEngine->GetEngineWrapper()->EntriesQueryDialog( &iEntriesToBeCreated, _L("How many entries to create?"), EFalse, this, ECreatorModuleStart );
-    }
-
-
-//----------------------------------------------------------------------------
-
-TInt CCreatorMailboxes::CreateMailboxEntryL(CMailboxesParameters *aParameters)
-    {
-    LOGSTRING("Creator: CCreatorMailboxes::CreateMailboxEntryL");
-
-      // clear any existing parameter definations
-    delete iParameters;
-    iParameters = NULL;
-    
-    CMailboxesParameters* parameters = aParameters;
-    
-    // random data needed if no predefined data available
-    if (!parameters)
-        {
-        iParameters = new(ELeave) CMailboxesParameters;
-        parameters = iParameters;
-
-        TPtrC company(iEngine->RandomString(CCreatorEngine::ECompany));
-        TPtrC firstName(iEngine->RandomString(CCreatorEngine::EFirstName));
-        
-        delete parameters->iMailboxName;
-        parameters->iMailboxName = 0;
-        parameters->iMailboxName = HBufC::NewL(KMailboxesFieldLength);
-        parameters->iMailboxName->Des() = KCreatorMailboxesPrefixName;
-        parameters->iMailboxName->Des().Append( company );
-        parameters->iMailboxName->Des().Append(_L(" #"));
-        parameters->iMailboxName->Des().AppendNum(iEngine->RandomNumber(1, 100));
-        
-        delete parameters->iIncomingLoginName;
-        parameters->iIncomingLoginName = 0;
-        parameters->iIncomingLoginName = HBufC::NewL(KMailboxesFieldLength); 
-        delete parameters->iOutgoingLoginName;
-        parameters->iOutgoingLoginName = 0;
-        parameters->iOutgoingLoginName = HBufC::NewL(KMailboxesFieldLength); 
-        parameters->iIncomingLoginName->Des() = iEngine->RandomString(CCreatorEngine::EFirstName);
-        parameters->iIncomingLoginName->Des().LowerCase();
-        parameters->iOutgoingLoginName->Des().Copy(parameters->iIncomingLoginName->Des());
-        
-        delete parameters->iIncomingPassword;
-        parameters->iIncomingPassword = 0;
-        parameters->iIncomingPassword = HBufC::NewL(KMailboxesFieldLength); 
-        delete parameters->iOutgoingPassword;
-        parameters->iOutgoingPassword = 0;
-        parameters->iOutgoingPassword = HBufC::NewL(KMailboxesFieldLength); 
-        parameters->iIncomingPassword->Des() = iEngine->RandomString(CCreatorEngine::ESurname);
-        parameters->iIncomingPassword->Des().LowerCase();
-        parameters->iOutgoingPassword->Des().Copy(parameters->iIncomingPassword->Des());
-        
-        delete parameters->iIncomingServerName;
-        parameters->iIncomingServerName = 0;
-        parameters->iIncomingServerName = HBufC::NewL(KMailboxesFieldLength); 
-        parameters->iIncomingServerName->Des() = _L("incoming.");
-        parameters->iIncomingServerName->Des().Append(company);
-        parameters->iIncomingServerName->Des().Append(_L(".com"));
-        parameters->iIncomingServerName->Des().LowerCase();
-                
-        delete parameters->iIncomingConnectionMethod;
-        parameters->iIncomingConnectionMethod = 0;
-        parameters->iIncomingConnectionMethod = HBufC::NewL(KInternet().Length());
-        parameters->iIncomingConnectionMethod->Des() = KInternet;  // use always this one, if it's not found, default will be used instead
-        
-        delete parameters->iOutgoingServerName;
-        parameters->iOutgoingServerName = 0;
-        parameters->iOutgoingServerName = HBufC::NewL(KMailboxesFieldLength); 
-        parameters->iOutgoingServerName->Des() = _L("smtp.");
-        parameters->iOutgoingServerName->Des().Append(company);
-        parameters->iOutgoingServerName->Des().Append(_L(".com"));
-        parameters->iOutgoingServerName->Des().LowerCase();
-        
-        delete parameters->iOutgoingConnectionMethod;
-        parameters->iOutgoingConnectionMethod = 0;
-        parameters->iOutgoingConnectionMethod = HBufC::NewL(KInternet().Length());
-        parameters->iOutgoingConnectionMethod->Des() = KInternet;  // use always this one, if it's not found, default will be used instead
-
-        delete parameters->iOwnEmailAddress;
-        parameters->iOwnEmailAddress = 0;
-        parameters->iOwnEmailAddress = iEngine->CreateEmailAddressLC();
-        parameters->iOwnEmailAddress->Des().LowerCase();
-        CleanupStack::Pop(); // parameters->iOwnEmailAddress
-        
-        delete parameters->iOwnEmailAlias;
-        parameters->iOwnEmailAlias = 0;
-        parameters->iOwnEmailAlias = HBufC::NewL(firstName.Length());        
-        parameters->iOwnEmailAlias->Des().Copy(firstName);       
-
-        delete parameters->iReceiptAddress;
-        parameters->iReceiptAddress = 0;
-        parameters->iReceiptAddress = iEngine->CreateEmailAddressLC();
-        parameters->iReceiptAddress->Des().LowerCase();
-        CleanupStack::Pop(); // parameters->iReceiptAddress
-        
-        delete parameters->iReplyToAddress;
-        parameters->iReplyToAddress = 0;
-        parameters->iReplyToAddress = iEngine->CreateEmailAddressLC();
-        parameters->iReplyToAddress->Des().LowerCase();
-        CleanupStack::Pop(); // parameters->iReplyToAddress
-        
-        parameters->iIncomingSSLWrapper = iEngine->RandomNumber(0, 1);
-        parameters->iIncomingSecureSockets = iEngine->RandomNumber(0, 1);        
-        parameters->iAcknowledgeReceipts = iEngine->RandomNumber(0, 1);
-        parameters->iAutoSendOnConnect = iEngine->RandomNumber(0, 1);
-        parameters->iDeleteEmailsAtDisconnect = iEngine->RandomNumber(0, 1);
-        parameters->iImapIdleCommand = iEngine->RandomNumber(0, 1);
-        parameters->iMarkSeenInSync = iEngine->RandomNumber(0, 1);
-        parameters->iEnableExpungeMode = iEngine->RandomNumber(0, 1);
-        parameters->iUseApop = iEngine->RandomNumber(0, 1);
-        parameters->iDisconnectedUserMode = iEngine->RandomNumber(0, 1);                
-        parameters->iOutgoingSSLWrapper = iEngine->RandomNumber(0, 1);
-        parameters->iOutgoingSecureSockets = iEngine->RandomNumber(0, 1);
-        parameters->iIncludeSignature = EFalse;
-        parameters->iAddVCard = EFalse;
-        parameters->iRequestReceipts = iEngine->RandomNumber(0, 1);
-        parameters->iSmtpAuth = iEngine->RandomNumber(0, 1);
-        
-        parameters->iIncomingPort = iEngine->RandomNumber(25, 500);
-        parameters->iAttachmentSizeLimit = iEngine->RandomNumber(1, KMaxTInt);
-        parameters->iBodyTextSizeLimit = iEngine->RandomNumber(1, KMaxTInt);
-        parameters->iAttachmentFetchSize = iEngine->RandomNumber(1, 40960);
-        parameters->iImapIdleTimeout = iEngine->RandomNumber(10, 2000);
-        parameters->iMaxEmailSize = iEngine->RandomNumber(1024, KMaxTInt);
-        parameters->iSyncRate = iEngine->RandomNumber(10, 500);        
-        parameters->iInboxSyncLimit = iEngine->RandomNumber(-1, 256);
-        parameters->iMailboxSyncLimit = iEngine->RandomNumber(-1, 256);
-        parameters->iOutgoingPort = KDefaultSmtpPort;
-        parameters->iToCCIncludeLimit = iEngine->RandomNumber(0, 30);                      
-        
-        parameters->iGetEmailOptions = (CMailboxesParameters::TGetEmailOption) iEngine->RandomNumber(CMailboxesParameters::EUndef, CMailboxesParameters::EGetEmailOptionLast-1);
-        parameters->iSubscribeType = (TFolderSubscribeType) iEngine->RandomNumber(EUpdateNeither, EUpdateBoth);
-        parameters->iSyncType = (TFolderSyncType) iEngine->RandomNumber(EUseCombination, EUseRemote);
-        parameters->iSendCopyToSelf = (TImSMTPSendCopyToSelf) iEngine->RandomNumber(ESendNoCopy, ESendCopyAsBccRecipient);
-        parameters->iSendOption = (TImSMTPSendMessageOption) iEngine->RandomNumber(ESendMessageImmediately, ESendMessageOnRequest);
-        parameters->iMailboxType = (TMailboxType) iEngine->RandomNumber(EMailboxPOP3, EMailboxIMAP4);
-        }
-   
-    TInt err = KErrNone;
-    
-    // make sure we have some IMEI stored
-    if (iIMEI.Length() == 0)
-        {
-        TRAP(err, GetIMEIFromThePhoneL());
-        }
-
-    // init 
-    CImImap4Settings* imap4Set = new(ELeave) CImImap4Settings;
-    CleanupStack::PushL(imap4Set);
-    CImPop3Settings* pop3Set = new(ELeave) CImPop3Settings;
-    CleanupStack::PushL(pop3Set);
-    CImSmtpSettings* smtpSet = new(ELeave) CImSmtpSettings;
-    CleanupStack::PushL(smtpSet);
-    CImIAPPreferences* outgoingIAPSet = CImIAPPreferences::NewLC();
-    CImIAPPreferences* incomingIAPSet = CImIAPPreferences::NewLC();
-    CEmailAccounts* account = CEmailAccounts::NewLC();
-  
-    // Get SMTP settings:
-    PopulateSmtpSettingsL(*account, *smtpSet, *outgoingIAPSet, *parameters);
-  
-    // appending mailbox type to array to be able to use
-    // correct type when deleting mailboxes
-    iEntryIds.AppendL( parameters->iMailboxType );
-    
-    if (parameters->iMailboxType == EMailboxIMAP4)
-        {
-        // Get IMAP settings:
-        PopulateImapSettingsL(*account, *imap4Set, *incomingIAPSet, *parameters);
-        TImapAccount imapAccountId = account->CreateImapAccountL(parameters->iMailboxName->Des(), *imap4Set, *incomingIAPSet, EFalse);
-        TSmtpAccount smtpAccountId = account->CreateSmtpAccountL(imapAccountId, *smtpSet, *outgoingIAPSet, EFalse);
-        account->SetDefaultSmtpAccountL(smtpAccountId);
-
-        iEntryIds.AppendL( imapAccountId.iImapAccountId );
-        iEntryIds.AppendL( imapAccountId.iImapService );
-        iEntryIds.AppendL( imapAccountId.iSmtpService );      
-        iEntryIds.AppendL( smtpAccountId.iSmtpAccountId );
-        iEntryIds.AppendL( smtpAccountId.iSmtpService );
-        iEntryIds.AppendL( smtpAccountId.iRelatedService );
-        
-        StoreIMEIToEntryL( imapAccountId.iImapService );
-        StoreIMEIToEntryL( smtpAccountId.iSmtpService );
-        }
-    else
-        {
-        // Get POP settings:
-        PopulatePopSettingsL(*account, *pop3Set, *incomingIAPSet, *parameters);
-        TPopAccount popAccountId = account->CreatePopAccountL(parameters->iMailboxName->Des(), *pop3Set, *incomingIAPSet, EFalse);
-        TSmtpAccount smtpAccountId = account->CreateSmtpAccountL(popAccountId, *smtpSet, *outgoingIAPSet, EFalse);     
-        account->SetDefaultSmtpAccountL(smtpAccountId);
-        
-        iEntryIds.AppendL( popAccountId.iPopAccountId );
-        iEntryIds.AppendL( popAccountId.iPopService );
-        iEntryIds.AppendL( popAccountId.iSmtpService );
-        iEntryIds.AppendL( smtpAccountId.iSmtpAccountId );
-        iEntryIds.AppendL( smtpAccountId.iSmtpService );
-        iEntryIds.AppendL( smtpAccountId.iRelatedService );
-
-        StoreIMEIToEntryL( popAccountId.iPopService );
-        StoreIMEIToEntryL( smtpAccountId.iSmtpService );
-        }  
-    CleanupStack::PopAndDestroy(6); //imap4Set, pop3Set, smtpSet, outgoingIAPSet, incomingIAPSet, account 
-        
-    return err;
-    }
-
-void CCreatorMailboxes::PopulateImapSettingsL( 
-            CEmailAccounts& aEmailAccount, 
-            CImImap4Settings& aImapSettings, 
-            CImIAPPreferences& aIApSettings, 
-            const CMailboxesParameters& aParameters )
-    {
-    // Get default settings first:
-    aEmailAccount.PopulateDefaultImapSettingsL(aImapSettings, aIApSettings);
-    
-    TImIAPChoice iapChoice;
-    iapChoice.iIAP = 0;
-    if( aParameters.iIncomingConnectionMethod == 0 || 
-        aParameters.iIncomingConnectionMethod->Des().Length() == 0 )
-        {
-        TRAP_IGNORE( iapChoice.iIAP = iEngine->AccessPointNameToIdL( KInternet ));
-        }
-    else
-        {
-        TRAP_IGNORE( iapChoice.iIAP = iEngine->AccessPointNameToIdL( aParameters.iIncomingConnectionMethod->Des()));
-        }
-    iapChoice.iDialogPref = ECommDbDialogPrefDoNotPrompt;
-    aIApSettings.AddIAPL(iapChoice);
-    
-    TBuf8<256> buf8;
-    if( aParameters.iIncomingLoginName && aParameters.iIncomingLoginName->Length() > 0 )                
-        buf8.Copy(aParameters.iIncomingLoginName->Des());
-    else
-        buf8.Copy(iEngine->RandomString(CCreatorEngine::EFirstName));
-    aImapSettings.SetLoginNameL(buf8);  //8
-    
-    if( aParameters.iIncomingPassword && aParameters.iIncomingPassword->Length() > 0 )
-        buf8.Copy(aParameters.iIncomingPassword->Des());    
-    else
-        buf8.Copy(iEngine->RandomString(CCreatorEngine::EFirstName));
-    aImapSettings.SetPasswordL(buf8);  //8
-    
-    if( aParameters.iIncomingFolderPath && aParameters.iIncomingFolderPath->Length() > 0 )
-        {
-        buf8.Copy(aParameters.iIncomingFolderPath->Des());
-        aImapSettings.SetFolderPathL(buf8);
-        }
-    
-    if( aParameters.iPathSeparator && aParameters.iPathSeparator->Length() > 0 )
-        aImapSettings.SetPathSeparator(aParameters.iIncomingFolderPath->Des()[0]);
-    
-    aImapSettings.SetDisconnectedUserMode(aParameters.iDisconnectedUserMode);
-    aImapSettings.SetSynchronise(aParameters.iSyncType);
-    aImapSettings.SetSubscribe(aParameters.iSubscribeType);
-    aImapSettings.SetAutoSendOnConnect(aParameters.iAutoSendOnConnect);
-    
-    if(aParameters.iMaxEmailSize != KUndef )
-        aImapSettings.SetMaxEmailSize(aParameters.iMaxEmailSize);
-    
-    aImapSettings.SetDeleteEmailsWhenDisconnecting(aParameters.iDeleteEmailsAtDisconnect);
-    aImapSettings.SetAcknowledgeReceipts(aParameters.iAcknowledgeReceipts);
-            
-    if(aParameters.iGetEmailOptions == CMailboxesParameters::EGetBodyText )
-        aImapSettings.SetGetMailOptions(EGetImap4EmailBodyText);
-    else if(aParameters.iGetEmailOptions == CMailboxesParameters::EGetBodyTextAndAttachments )
-        aImapSettings.SetGetMailOptions(EGetImap4EmailBodyTextAndAttachments);
-    else if(aParameters.iGetEmailOptions == CMailboxesParameters::EGetAttachments )
-        aImapSettings.SetGetMailOptions(EGetImap4EmailAttachments);
-    else if(aParameters.iGetEmailOptions == CMailboxesParameters::EGetBodyAlternativeText )
-        aImapSettings.SetGetMailOptions(EGetImap4EmailBodyAlternativeText);
-    else
-        aImapSettings.SetGetMailOptions(EGetImap4EmailHeaders); // Default
-    
-    if( aParameters.iInboxSyncLimit != KUndef )
-        aImapSettings.SetInboxSynchronisationLimit(aParameters.iInboxSyncLimit);
-    
-    if( aParameters.iMailboxSyncLimit != KUndef )
-        aImapSettings.SetMailboxSynchronisationLimit(aParameters.iMailboxSyncLimit);
-    
-    aImapSettings.SetUpdatingSeenFlags(aParameters.iMarkSeenInSync);
-    
-    if( aParameters.iSyncRate != KUndef )
-        aImapSettings.SetSyncRateL(aParameters.iSyncRate);
-    
-    if( aParameters.iAttachmentFetchSize != KUndef )
-        aImapSettings.SetFetchSizeL(aParameters.iAttachmentFetchSize);
-    
-    aImapSettings.SetImapIdle(aParameters.iImapIdleCommand);
-    if( aParameters.iImapIdleTimeout != KUndef )
-        aImapSettings.SetImapIdleTimeoutL(aParameters.iImapIdleTimeout);
-    
-    if( aParameters.iBodyTextSizeLimit != KUndef )
-        aImapSettings.SetBodyTextSizeLimitL(aParameters.iBodyTextSizeLimit);
-    
-    if( aParameters.iAttachmentSizeLimit != KUndef )
-        aImapSettings.SetAttachmentSizeLimitL(aParameters.iAttachmentSizeLimit);
-    
-#if(!defined __SERIES60_30__ && !defined __SERIES60_31__)
-    aImapSettings.SetUseExpunge(aParameters.iEnableExpungeMode);
-#endif
-    
-    if(aParameters.iIncomingServerName && aParameters.iIncomingServerName->Length() > 0 )
-        aImapSettings.SetServerAddressL(aParameters.iIncomingServerName->Des());
-    else
-        aImapSettings.SetServerAddressL(KDefaultIncomingServer);
-        
-    if( aParameters.iIncomingPort != KUndef )
-        aImapSettings.SetPort(aParameters.iIncomingPort);                 
-      
-    aImapSettings.SetSecureSockets(aParameters.iIncomingSecureSockets);
-    aImapSettings.SetSSLWrapper(aParameters.iIncomingSSLWrapper);
-    }
-
-void CCreatorMailboxes::PopulatePopSettingsL( 
-            CEmailAccounts& aEmailAccount, 
-            CImPop3Settings& aPopSettings, 
-            CImIAPPreferences& aIApSettings, 
-            const CMailboxesParameters& aParameters )
-    {
-    aEmailAccount.PopulateDefaultPopSettingsL(aPopSettings, aIApSettings);
-    
-    TImIAPChoice iapChoice;
-    iapChoice.iIAP = 0;
-    if( aParameters.iIncomingConnectionMethod == 0 || 
-        aParameters.iIncomingConnectionMethod->Des().Length() == 0 )
-        {
-        TRAP_IGNORE( iapChoice.iIAP = iEngine->AccessPointNameToIdL( KInternet ));
-        }
-    else
-        {
-        TRAP_IGNORE( iapChoice.iIAP = iEngine->AccessPointNameToIdL( aParameters.iIncomingConnectionMethod->Des() ));
-        }
-    iapChoice.iDialogPref = ECommDbDialogPrefDoNotPrompt;
-    aIApSettings.AddIAPL(iapChoice);
-    
-    TBuf8<256> buf8;
-    if( aParameters.iIncomingLoginName && aParameters.iIncomingLoginName->Length() > 0 )                
-        buf8.Copy(aParameters.iIncomingLoginName->Des());
-    else
-        buf8.Copy(iEngine->RandomString(CCreatorEngine::EFirstName));
-    aPopSettings.SetLoginNameL(buf8);  //8
-        
-    if( aParameters.iIncomingPassword && aParameters.iIncomingPassword->Length() > 0 )
-        buf8.Copy(aParameters.iIncomingPassword->Des());    
-    else
-        buf8.Copy(iEngine->RandomString(CCreatorEngine::EFirstName));
-    aPopSettings.SetPasswordL(buf8);  //8
-    
-    aPopSettings.SetAutoSendOnConnect( aParameters.iAutoSendOnConnect );
-    aPopSettings.SetApop( aParameters.iUseApop );
-    aPopSettings.SetDisconnectedUserMode( aParameters.iDisconnectedUserMode );
-    aPopSettings.SetDeleteEmailsWhenDisconnecting( aParameters.iDeleteEmailsAtDisconnect );
-    aPopSettings.SetAcknowledgeReceipts( aParameters.iAcknowledgeReceipts );
-    
-    if( aParameters.iMaxEmailSize != KUndef )
-        aPopSettings.SetMaxEmailSize(aParameters.iMaxEmailSize);
-    
-    if(aParameters.iGetEmailOptions != CMailboxesParameters::EGetHeaders && 
-            aParameters.iGetEmailOptions != CMailboxesParameters::EUndef )
-        {
-        aPopSettings.SetGetMailOptions(EGetPop3EmailMessages);
-        aPopSettings.SetPopulationLimitL( -1 ); // -1 = body and attachment
-        }
-    else
-        {
-        aPopSettings.SetGetMailOptions(EGetPop3EmailHeaders); // Default
-        aPopSettings.SetPopulationLimitL( -2 ); // -2 = headers only
-        }
-    
-    if( aParameters.iInboxSyncLimit != KUndef )
-        {
-        aPopSettings.SetInboxSynchronisationLimit(aParameters.iInboxSyncLimit);
-        }
-    
-    if(aParameters.iIncomingServerName && aParameters.iIncomingServerName->Length() > 0 )
-        aPopSettings.SetServerAddressL(aParameters.iIncomingServerName->Des());
-    else
-        aPopSettings.SetServerAddressL(KDefaultIncomingServer);
-            
-    if( aParameters.iIncomingPort != KUndef )
-        aPopSettings.SetPort(aParameters.iIncomingPort);                 
-          
-    aPopSettings.SetSecureSockets(aParameters.iIncomingSecureSockets);
-    aPopSettings.SetSSLWrapper(aParameters.iIncomingSSLWrapper);    
-    }
-
-void CCreatorMailboxes::PopulateSmtpSettingsL( 
-        CEmailAccounts& aEmailAccount, 
-        CImSmtpSettings& aSmtpSettings, 
-        CImIAPPreferences& aIApSettings, 
-        const CMailboxesParameters& aParameters )
-    {    
-    // Get default settings first: 
-    aEmailAccount.PopulateDefaultSmtpSettingsL(aSmtpSettings, aIApSettings);
-    TImIAPChoice iapChoice;
-    iapChoice.iIAP = 0;
-    if( aParameters.iOutgoingConnectionMethod == 0 || 
-        aParameters.iOutgoingConnectionMethod->Des().Length() == 0 )
-        {
-        TRAP_IGNORE( iapChoice.iIAP = iEngine->AccessPointNameToIdL( KInternet ));
-        }
-    else
-        {
-        TRAP_IGNORE( iapChoice.iIAP = iEngine->AccessPointNameToIdL( aParameters.iOutgoingConnectionMethod->Des() ));
-        }
-    iapChoice.iDialogPref = ECommDbDialogPrefDoNotPrompt;
-    aIApSettings.AddIAPL(iapChoice);
-    
-    // set SMTP preferences
-    if( aParameters.iOwnEmailAlias && aParameters.iOwnEmailAlias->Length() > 0 )
-        aSmtpSettings.SetEmailAliasL(aParameters.iOwnEmailAlias->Des());
-    
-    if( aParameters.iOwnEmailAddress && aParameters.iOwnEmailAddress->Length() > 0 )    
-        aSmtpSettings.SetEmailAddressL(aParameters.iOwnEmailAddress->Des());
-    
-    if( aParameters.iReplyToAddress && aParameters.iReplyToAddress->Length() > 0 )
-        aSmtpSettings.SetReplyToAddressL(aParameters.iReplyToAddress->Des());
-    
-    if( aParameters.iReceiptAddress && aParameters.iReceiptAddress->Length() > 0 )
-        aSmtpSettings.SetReceiptAddressL(aParameters.iReceiptAddress->Des());    
-    
-    aSmtpSettings.SetBodyEncoding(EMsgOutboxMIME);
-    aSmtpSettings.SetAddVCardToEmail(aParameters.iAddVCard);
-    aSmtpSettings.SetAddSignatureToEmail(aParameters.iIncludeSignature);
-    aSmtpSettings.SetRequestReceipts(aParameters.iRequestReceipts);
-    aSmtpSettings.SetSendCopyToSelf(aParameters.iSendCopyToSelf);    
-    aSmtpSettings.SetSendMessageOption(aParameters.iSendOption);        
-            
-    TBuf8<256> buf8;
-    if( aParameters.iOutgoingLoginName && aParameters.iOutgoingLoginName->Length() > 0 )
-        {
-        buf8.Copy(aParameters.iOutgoingLoginName->Des());
-        aSmtpSettings.SetLoginNameL(buf8);  //8
-        }
-    
-    if( aParameters.iOutgoingPassword && aParameters.iOutgoingPassword->Length() > 0)
-        {
-        buf8.Copy(aParameters.iOutgoingPassword->Des());
-        aSmtpSettings.SetPasswordL(buf8);  //8
-        }
-    
-    aSmtpSettings.SetSMTPAuth(aParameters.iSmtpAuth);
-    if( aParameters.iToCCIncludeLimit != KUndef )
-         aSmtpSettings.SetToCcIncludeLimitL(aParameters.iToCCIncludeLimit);
-    
-    if( aParameters.iOutgoingServerName && aParameters.iOutgoingServerName->Length() > 0 )
-        aSmtpSettings.SetServerAddressL(aParameters.iOutgoingServerName->Des());
-    else
-        aSmtpSettings.SetServerAddressL(KDefaultOutgoingServer);
-    
-    if( aParameters.iOutgoingPort != KUndef )
-        aSmtpSettings.SetPort(aParameters.iOutgoingPort);
-                
-    aSmtpSettings.SetSecureSockets(aParameters.iOutgoingSecureSockets);
-    aSmtpSettings.SetSSLWrapper(aParameters.iOutgoingSSLWrapper);
-    }
-
-//----------------------------------------------------------------------------
-
-void CCreatorMailboxes::StoreIMEIToEntryL(const TMsvId aMailboxId)
-    {
-    LOGSTRING("Creator: CCreatorMailboxes::StoreIMEIToEntryL");
-
-    CMsvSession* session = CMsvSession::OpenSyncL(*this);
-    CleanupStack::PushL(session);
-    
-    CMsvEntry* centry = session->GetEntryL(aMailboxId);
-    CleanupStack::PushL(centry);
-
-    TMsvEntry tentry = centry->Entry();
-    tentry.iDescription.Set(iIMEI);
-    centry->ChangeL(tentry);
-
-    CleanupStack::PopAndDestroy(2); // centry, session
-    }
-
-//----------------------------------------------------------------------------
-
-void CCreatorMailboxes::GetIMEIFromThePhoneL()
-    {
-    LOGSTRING("Creator: CCreatorMailboxes::GetIMEIFromThePhoneL");
-
-#ifndef __WINS__
-
-    RTelServer telServer;
-    User::LeaveIfError( telServer.Connect() );
-    CleanupClosePushL(telServer);
-
-    TInt numPhones = 0;
-    User::LeaveIfError( telServer.EnumeratePhones( numPhones ) );
-    if ( numPhones < 1 )
-        {
-        User::Leave( KErrNotFound );
-        }
-    RTelServer::TPhoneInfo info;
-    User::LeaveIfError( telServer.GetPhoneInfo( 0, info ) );
-    RMobilePhone mobilePhone;
-    User::LeaveIfError( mobilePhone.Open( telServer, info.iName ) );
-    CleanupClosePushL( mobilePhone );
-
-    //mobilePhone.Initialise();
-    TUint32 identityCaps;
-    User::LeaveIfError( mobilePhone.GetIdentityCaps( identityCaps ) );
-
-    if ( identityCaps & RMobilePhone::KCapsGetSerialNumber )
-        {
-        TRequestStatus status;
-        RMobilePhone::TMobilePhoneIdentityV1 mobilePhoneIdentity;
-
-        mobilePhone.GetPhoneId( status, mobilePhoneIdentity );
-
-        User::WaitForRequest( status );
-        User::LeaveIfError( status.Int() );
-
-        iIMEI.Copy( mobilePhoneIdentity.iSerialNumber );
-        }
-    else
-        {
-        User::Leave( KErrNotSupported );
-        }
-
-    CleanupStack::PopAndDestroy( &mobilePhone );
-    CleanupStack::PopAndDestroy( &telServer );
-
-#else
-
-    // use fixed IMEI for emulator
-    _LIT( KIMAEmulatorImei, "123456789012345" );
-    iIMEI.Copy( KIMAEmulatorImei );
-
-#endif // __WINS__
-
-    }
-    
-//----------------------------------------------------------------------------
-
-void CCreatorMailboxes::HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/) // from MMsvSessionObserver
-    {
-    }
-
-//----------------------------------------------------------------------------
-void CCreatorMailboxes::DeleteAllL()
-    {
-    LOGSTRING("Creator: CCreatorMailboxes::DeleteAllL");
-    
-    CEmailAccounts* accountMgr = CEmailAccounts::NewLC();
-    
-    // Delete pop accounts
-    RArray<TPopAccount> popAccountsToDelete;
-    CleanupClosePushL( popAccountsToDelete );
-    accountMgr->GetPopAccountsL( popAccountsToDelete );
-    for ( TInt i = 0; i < popAccountsToDelete.Count(); i++ )
-        {
-        accountMgr->DeletePopAccountL( popAccountsToDelete[i] );
-        }
-    CleanupStack::PopAndDestroy( &popAccountsToDelete );
-    
-    // Delete imap accounts
-    RArray<TImapAccount> imapAccountsToDelete;
-    CleanupClosePushL( imapAccountsToDelete );
-    accountMgr->GetImapAccountsL( imapAccountsToDelete );
-    for ( TInt i = 0; i < imapAccountsToDelete.Count(); i++ )
-        {
-        accountMgr->DeleteImapAccountL( imapAccountsToDelete[i] );
-        }
-    CleanupStack::PopAndDestroy( &imapAccountsToDelete );
-    
-    // Delete smtp accounts
-    RArray<TSmtpAccount> smtpAccountsToDelete;
-    CleanupClosePushL( smtpAccountsToDelete );
-    accountMgr->GetSmtpAccountsL( smtpAccountsToDelete );
-    for ( TInt i = 0; i < smtpAccountsToDelete.Count(); i++ )
-        {
-        accountMgr->DeleteSmtpAccountL( smtpAccountsToDelete[i] );
-        }
-    CleanupStack::PopAndDestroy( &smtpAccountsToDelete );
-
-    iEntryIds.Reset();
-    
-    // all entries deleted, remove the Mailbox related registry
-    iEngine->RemoveStoreL( KUidDictionaryUidMailbox );
-    
-    CleanupStack::PopAndDestroy( accountMgr ); 
-    }
-
-//----------------------------------------------------------------------------
-void CCreatorMailboxes::DeleteAllCreatedByCreatorL()
-    {
-    LOGSTRING("Creator: CCreatorMailboxes::DeleteAllCreatedByCreatorL");
-    
-    iEntryIds.Reset();
-    CEmailAccounts* accountMgr = CEmailAccounts::NewLC();
-    
-    // fetch ids of entries created by Creator
-    iEngine->ReadEntryIdsFromStoreL( iEntryIds, KUidDictionaryUidMailbox );
-    
-    TInt i(0);
-    while ( i < iEntryIds.Count() && iEntryIds.Count() > 6 ) 
-        {
-        // there should be at least 7 items in the array:
-        // one for mailbox type
-        // 3 for imap OR pop ids
-        // 3 for smtp ids
-
-        // delete entries
-        
-        TInt type = iEntryIds[i++]; // TMailboxType
-        if ( type == EMailboxPOP3 )
-            {
-            TPopAccount popAccount;
-            popAccount.iPopAccountId = iEntryIds[i++];
-            popAccount.iPopService = iEntryIds[i++];            
-            popAccount.iSmtpService = iEntryIds[i++];
-            TRAP_IGNORE( accountMgr->DeletePopAccountL( popAccount ) );            
-            }
-        else if ( type == EMailboxIMAP4 )
-            {
-            TImapAccount imapAccount;
-            imapAccount.iImapAccountId = iEntryIds[i++];
-            imapAccount.iImapService = iEntryIds[i++];
-            imapAccount.iImapService = iEntryIds[i++];
-            TRAP_IGNORE( accountMgr->DeleteImapAccountL( imapAccount ) );
-            }
-        else 
-            {
-            // ignore unknown mailbox types
-            i +=3;
-            }
-        
-        // There should be one smtp service for each pop and imap service
-        TSmtpAccount smtpAccount;
-        smtpAccount.iSmtpAccountId = iEntryIds[i++];
-        smtpAccount.iSmtpService = iEntryIds[i++];
-        smtpAccount.iRelatedService = iEntryIds[i++];
-        TRAP_IGNORE( accountMgr->DeleteSmtpAccountL( smtpAccount ) );
-        }
-
-    // reset must be done here, because iEntryIds is stored in destructor
-    iEntryIds.Reset();
-    
-    // all entries deleted, remove the mailbox related registry
-    iEngine->RemoveStoreL( KUidDictionaryUidMailbox );
-
-    CleanupStack::PopAndDestroy( accountMgr ); 
-    }
-//----------------------------------------------------------------------------
-