email/imum/Mtms/Src/ImumCreatorPredefinedMailbox.cpp
branchRCL_3
changeset 60 7fdbb852d323
parent 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Mtms/Src/ImumCreatorPredefinedMailbox.cpp	Wed Sep 01 12:31:54 2010 +0100
@@ -0,0 +1,827 @@
+/*
+* Copyright (c) 2006 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:  ImumCreatorPredefinedMailbox.cpp
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <smtpset.h>                        // SMTP enumerations
+#include <imapset.h>                        // IMAP4 mail settings
+#include <pop3set.h>                        // POP3 mail settings
+#include <iapprefs.h>
+#include <SendUiConsts.h>
+
+#include "ImumDaSettingsKeys.h"
+#include "ImumInSettingsKeys.h"
+#include "ImumCreatorPredefinedMailbox.h"
+#include "ImumPrivateCRKeys.h"                  // Predefined mailbox keys
+#include "EmailUtils.H"
+#include "ImumInternalApi.h"                // CImumInternalApi
+#include "ImumInSettingsData.h"
+#include "ImumInSettingsDataCollection.h"
+#include "ImumMtmLogging.h"
+#include "ImumDaErrorCodes.h"
+
+// EXTERNAL DATA STRUCTURES
+// EXTERNAL FUNCTION PROTOTYPES
+// CONSTANTS
+const TInt KImumMailboxIndex = 0x100;
+const TInt KImumMboxMaxTextLength = 500;
+const TInt KImumConvertValue = 0x02;
+
+// MACROS
+// LOCAL CONSTANTS AND MACROS
+// MODULE DATA STRUCTURES
+// LOCAL FUNCTION PROTOTYPES
+// FORWARD DECLARATIONS
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::Newl()
+// ----------------------------------------------------------------------------
+//
+CImumCreatorPredefinedMailbox* CImumCreatorPredefinedMailbox::NewL(
+    CImumInternalApi& aMailboxApi )
+    {
+    IMUM_STATIC_CONTEXT( CImumCreatorPredefinedMailbox::NewL, 0, mtm, KImumMtmLog );
+    IMUM_IN();
+
+    // Create the object
+    CImumCreatorPredefinedMailbox* self = NewLC( aMailboxApi );
+    CleanupStack::Pop(); // self
+
+    IMUM_OUT();
+
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::NewlC()
+// ----------------------------------------------------------------------------
+//
+CImumCreatorPredefinedMailbox* CImumCreatorPredefinedMailbox::NewLC(
+    CImumInternalApi& aMailboxApi )
+    {
+    IMUM_STATIC_CONTEXT( CImumCreatorPredefinedMailbox::NewLC, 0, mtm, KImumMtmLog );
+    IMUM_IN();
+
+    // Create the object
+    CImumCreatorPredefinedMailbox* self =
+        new ( ELeave ) CImumCreatorPredefinedMailbox( aMailboxApi );
+    CleanupStack::PushL( self );
+
+    // Constuct the object
+    self->ConstructL();
+
+    IMUM_OUT();
+
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::~CImumCreatorPredefinedMailbox()
+// ----------------------------------------------------------------------------
+//
+CImumCreatorPredefinedMailbox::~CImumCreatorPredefinedMailbox()
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::~CImumCreatorPredefinedMailbox, 0, KImumMtmLog );
+    IMUM_IN();
+
+    delete iCenRepSession;
+    iCenRepSession = NULL;
+
+    iMailboxName.Close();
+    iMailboxRcvServer.Close();
+    iMailboxSndServer.Close();
+    iMailboxEmailAddress.Close();
+    iMailboxRcvUsername.Close();
+    iMailboxRcvPassword.Close();
+    iMailboxSndUsername.Close();
+    iMailboxSndPassword.Close();
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::CImumCreatorPredefinedMailbox()
+// ----------------------------------------------------------------------------
+//
+CImumCreatorPredefinedMailbox::CImumCreatorPredefinedMailbox(
+    CImumInternalApi& aMailboxApi )
+    :
+    iMailboxApi( aMailboxApi ),
+    iCenRepSession( NULL )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CImumCreatorPredefinedMailbox, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Clear all fields
+    ClearFields();
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::ConstructL()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::ConstructL()
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ConstructL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    iCenRepSession = CRepository::NewL( KCRUidImum );
+
+    iMailboxName.CreateMax( KImumMboxMaxTextLength );
+    iMailboxRcvServer.CreateMax( KImumMboxMaxTextLength );
+    iMailboxSndServer.CreateMax( KImumMboxMaxTextLength );
+    iMailboxEmailAddress.CreateMax( KImumMboxMaxTextLength );
+    iMailboxRcvUsername.CreateMax( KImumMboxMaxTextLength );
+    iMailboxRcvPassword.CreateMax( KImumMboxMaxTextLength );
+    iMailboxSndUsername.CreateMax( KImumMboxMaxTextLength );
+    iMailboxSndPassword.CreateMax( KImumMboxMaxTextLength );
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+// CImumCreatorPredefinedMailbox::ReadAndCreate()
+// ----------------------------------------------------------------------------
+//
+TBool CImumCreatorPredefinedMailbox::ReadAndCreate()
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ReadAndCreate, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Read SMTP settings and validate them
+    ReadSMTPParameters();
+    TBool create = EFalse;
+
+    // Continue settings reading, if everything is fine
+    if ( ProtocolOk() )
+        {
+        IMUM0( 0, "Protocol information ok, proceed with reading receiving settings" );
+        // Read settings based on protocol
+        if ( !iMailboxProtocol )
+            {
+            IMUM0( 0, "Read POP3 Parameters" );
+
+            // Read POP3 settings and validate them
+            ReadPOP3Parameters();
+            }
+        else
+            {
+            IMUM0( 0, "Read IMAP4 Parameters" );
+
+            // Read IMAP4 settings and validate them
+            ReadIMAP4Parameters();
+            }
+
+        create = CompulsoryFilled();
+        }
+
+    // Settings are ok
+    if ( create )
+        {
+        IMUM0( 0, "Mailbox can be created, perform final finetuning" );
+        FixSettings();
+        }
+
+    IMUM_OUT();
+    return create;
+    }
+
+// ---------------------------------------------------------------------------
+// From class .
+// CImumCreatorPredefinedMailbox::ProtocolOk()
+// ---------------------------------------------------------------------------
+//
+TBool CImumCreatorPredefinedMailbox::ProtocolOk()
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ProtocolOk, 0, KImumMtmLog );
+    IMUM_IN();
+    IMUM_OUT();
+
+    return ( iMailboxProtocol == 0 || iMailboxProtocol == 1 );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CImumCreatorPredefinedMailbox::CompulsoryFilled()
+// ---------------------------------------------------------------------------
+//
+TBool CImumCreatorPredefinedMailbox::CompulsoryFilled()
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CompulsoryFilled, 0, KImumMtmLog );
+    IMUM_IN();
+
+    TBool sendServerOk = iMailboxSndServer.Length() > 0;
+    TBool rcvServerOk = iMailboxRcvServer.Length() > 0;
+    TBool nameOk = iMailboxName.Length() > 0;
+
+    IMUM_OUT();
+
+    return sendServerOk && rcvServerOk && nameOk;
+    }
+
+// ---------------------------------------------------------------------------
+// CImumCreatorPredefinedMailbox::FixSettings()
+// ---------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::FixSettings()
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::FixSettings, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Set correct flag for the attachment setting
+    TBool set = iMailboxFetchStates > 0;
+    iMailboxFetchStates = set ?
+        TImumInSettings::EFlagDownloadHeader:
+        TImumInSettings::EFlagSetDownloadAll;
+
+    IMUM_OUT();
+    }
+
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::DefinePredefinedMailboxL()
+// ----------------------------------------------------------------------------
+//
+TBool CImumCreatorPredefinedMailbox::DefinePredefinedMailboxL(
+    const TUint aMailbox,
+    CImumInSettingsData& aSettings )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::DefinePredefinedMailboxL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Clear all fields
+    ClearFields( aMailbox );
+    aSettings.ResetAll();
+
+    // Create settings if things are fine
+    if ( ReadAndCreate() )
+        {
+        // Check the mailbox type
+        if ( !iMailboxProtocol )
+            {
+            CreatePOP3MailboxL( aSettings );
+            }
+        else
+            {
+            CreateIMAP4MailboxL( aSettings );
+            }
+        }
+
+    IMUM_OUT();
+    return !aSettings.Validate();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::ReadSMTPParameters()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::ReadSMTPParameters()
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ReadSMTPParameters, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Get mailbox name
+    GetKey( KImumMailName1, iMailboxName );
+
+    // Get protocol
+    GetKey( KImumMailProtocol1, iMailboxProtocol );
+
+    // Get sending server address
+    GetKey( KImumMailSendingHost1, iMailboxSndServer );
+
+    // Get access point
+    GetKey( KImumMailIAP1, iMailboxAccessPoint );
+
+    // Get own email address
+    GetKey( KImumMailOwnAddress1, iMailboxEmailAddress );
+
+    // Get copy email address to CC setting
+    GetKey( KImumMailCopyToOwn1, iMailboxFillCC );
+
+    // Get sending delay setting
+    GetKey( KImumMailSendMessage1, iMailboxMessageSend );
+
+    // Get sending security setting
+    GetKey( KImumSmtpSecurity1, iMailboxSndSecurity );
+    DoSecurityConversion( iMailboxSndSecurity );
+
+    // Get OMA Email Notifications setting
+    GetKey( KImumOmaEmnEnabled1, iMailboxOmaEmnEnabled );
+
+    // Get username setting
+    GetKey( KImumMailOutgoingUsername1, iMailboxSndUsername );
+
+    // Get password setting
+    GetKey( KImumMailOutgoingPassword1, iMailboxSndPassword );
+
+    // Get sending port number setting
+    GetKey( KImumMailOutgoingPortNumber1, iMailboxSndPort );
+
+    if(iMailboxSndPort <= 0)
+        {
+        iMailboxSndPort = GetDefaultSecurityPort( iMailboxSndSecurity,
+        										  TImumDaSettings::EValueProtocolSmtp );
+        }
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::ReadPOP3Parameters()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::ReadPOP3Parameters()
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ReadPOP3Parameters, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Get receiving server address
+    GetKey( KImumMailReceivingHost1, iMailboxRcvServer );
+
+    // Get APop settings
+    GetKey( KImumMailAPop1, iMailboxAPop );
+
+     // Get header fetching setting
+    GetKey( KImumMailFetchHeaders1, iMailboxHeaderCount );
+
+    // Get username setting
+    GetKey( KImumMailIncomingUsername1, iMailboxRcvUsername );
+
+    // Get password setting
+    GetKey( KImumMailIncomingPassword1, iMailboxRcvPassword );
+
+    // Get receiving security setting
+    GetKey( KImumMailSecurity1, iMailboxRcvSecurity );
+    DoSecurityConversion( iMailboxRcvSecurity );
+
+    // Get receiving port number
+    GetKey( KImumMailIncomingPortNumber1, iMailboxRcvPort );
+
+    if(iMailboxRcvPort <= 0)
+        {
+        iMailboxRcvPort = GetDefaultSecurityPort( iMailboxRcvSecurity,
+        										  TImumDaSettings::EValueProtocolPop3 );
+        }
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::ReadIMAP4Parameters()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::ReadIMAP4Parameters()
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ReadIMAP4Parameters, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Get receiving host
+    GetKey( KImumMailReceivingHost1, iMailboxRcvServer );
+
+    // Get attachment fetching setting
+    GetKey( KImumMailFetchAttachment1, iMailboxFetchStates );
+
+    // Get header fetching setting
+    GetKey( KImumMailFetchHeaders1, iMailboxHeaderCount );
+
+    // Get username setting
+    GetKey( KImumMailIncomingUsername1, iMailboxRcvUsername );
+
+    // Get password setting
+    GetKey( KImumMailIncomingPassword1, iMailboxRcvPassword );
+
+    // Get receiving security setting
+    GetKey( KImumMailSecurity1, iMailboxRcvSecurity );
+    DoSecurityConversion( iMailboxRcvSecurity );
+
+    // Get receiving port number
+    GetKey( KImumMailIncomingPortNumber1, iMailboxRcvPort );
+
+    if(iMailboxRcvPort <= 0)
+        {
+        iMailboxRcvPort = GetDefaultSecurityPort( iMailboxRcvSecurity,
+        										  TImumDaSettings::EValueProtocolImap4 );
+        }
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::CreateIMAP4MailboxL()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::CreateIMAP4MailboxL(
+    CImumInSettingsData& aSettings )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreateIMAP4MailboxL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    CreateIMAP4SettingsL( aSettings );
+    CreateSMTPSettingsL( aSettings );
+    CreateGeneralSettingsL( aSettings );
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::CreatePOP3MailboxL()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::CreatePOP3MailboxL(
+    CImumInSettingsData& aSettings )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreatePOP3MailboxL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    CreatePOP3SettingsL( aSettings );
+    CreateSMTPSettingsL( aSettings );
+    CreateGeneralSettingsL( aSettings );
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::CreateGeneralSettingsL()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::CreateGeneralSettingsL(
+    CImumInSettingsData& aSettings )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreateGeneralSettingsL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Set OMA EMN state
+    aSettings.SetAttr(
+        TImumDaSettings::EKeyAutoNotifications, iMailboxOmaEmnEnabled );
+
+    // Add email address to settings
+    aSettings.SetAttr(
+        TImumDaSettings::EKeyEmailAddress, iMailboxEmailAddress );
+
+    // Set mail address can be empty
+    aSettings.SetAttr(
+        TImumInSettings::EKeyAllowEmptyEmailAddress, ETrue );
+
+    // Set mailbox name
+    aSettings.SetAttr(
+        TImumDaSettings::EKeyMailboxName, iMailboxName );
+
+    // Generate mailbox name when necessary
+    aSettings.SetAttr(
+        TImumInSettings::EKeyGenerateMailboxName, ETrue );
+
+    // Set send message delay
+    aSettings.SetAttr(
+        TImumDaSettings::EKeySendDelay, iMailboxMessageSend );
+
+    // Set send copy to self
+    aSettings.SetAttr(
+        TImumDaSettings::EKeySendCopyToSelf, iMailboxFillCC );
+
+    // Update inbox update limit
+    aSettings.SetAttr(
+        TImumDaSettings::EKeyInboxUpdateLimit,
+        static_cast<TInt32>( iMailboxHeaderCount ) );
+
+    // Update folder update limit
+    aSettings.GetInSetL( 0 ).SetAttr(
+        TImumDaSettings::EKeyFolderUpdateLimit,
+        static_cast<TInt32>( iMailboxHeaderCount ) );
+
+    // Set download flags
+    aSettings.GetInSetL( 0 ).SetAttr(
+        TImumInSettings::EKeyDownloadFlags,
+        static_cast<TInt32>( iMailboxFetchStates ) );
+
+    // Set predefined mailbox flag
+    aSettings.SetAttr(
+        TImumInSettings::EKeyIsPredefinedMailbox, ETrue );
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::CreateSMTPSettingsL()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::CreateSMTPSettingsL(
+    CImumInSettingsData& aSettings )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreateSMTPSettingsL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Create Imap4 settings
+    MImumInSettingsDataCollection& smtpSettings =
+        aSettings.AddInSetL( KSenduiMtmSmtpUid );
+
+    // Add security setting to settings
+    smtpSettings.SetAttr(
+        TImumDaSettings::EKeyAccessPoint, iMailboxAccessPoint );
+
+    // Add access point detail to settings
+    smtpSettings.SetAttr(
+        TImumInSettings::EKeyAccessPointType,
+        TImumInSettings::EValueApIsIapId );
+
+    // Add server address to settings
+    smtpSettings.SetAttr(
+        TImumDaSettings::EKeyServer, iMailboxSndServer );
+
+    // Add security settings
+    smtpSettings.SetAttr(
+        TImumDaSettings::EKeySecurity, iMailboxSndSecurity );
+
+    // Add sending port number settings
+    smtpSettings.SetAttr(
+        TImumDaSettings::EKeyPort, iMailboxSndPort );
+
+    // Fill in the login info
+    FillInLoginInfoL( iMailboxSndUsername, iMailboxSndPassword, smtpSettings );
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::CreateIMAP4SettingsL()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::CreateIMAP4SettingsL(
+    CImumInSettingsData& aSettings )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreateIMAP4SettingsL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Create Imap4 settings
+    MImumInSettingsDataCollection& imap4Settings =
+        aSettings.AddInSetL( KSenduiMtmImap4Uid );
+
+    // Add security setting to settings
+    imap4Settings.SetAttr(
+        TImumDaSettings::EKeyAccessPoint, iMailboxAccessPoint );
+
+    // Add access point detail to settings
+    imap4Settings.SetAttr(
+        TImumInSettings::EKeyAccessPointType,
+        TImumInSettings::EValueApIsIapId );
+
+    // Add server address to settings
+    imap4Settings.SetAttr(
+        TImumDaSettings::EKeyServer, iMailboxRcvServer );
+
+    // Add security settings
+    imap4Settings.SetAttr(
+        TImumDaSettings::EKeySecurity, iMailboxRcvSecurity );
+
+    // Add receiving port number settings
+    imap4Settings.SetAttr(
+        TImumDaSettings::EKeyPort, iMailboxRcvPort );
+
+    // Fill in the login info
+    FillInLoginInfoL( iMailboxRcvUsername, iMailboxRcvPassword, imap4Settings );
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::CreatePOP3SettingsL()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::CreatePOP3SettingsL(
+    CImumInSettingsData& aSettings )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreatePOP3SettingsL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Create Imap4 settings
+    MImumInSettingsDataCollection& pop3Settings =
+        aSettings.AddInSetL( KSenduiMtmPop3Uid );
+
+    // Add access point to settings
+    pop3Settings.SetAttr(
+        TImumDaSettings::EKeyAccessPoint, iMailboxAccessPoint );
+
+    // Add access point detail to settings
+    pop3Settings.SetAttr(
+        TImumInSettings::EKeyAccessPointType,
+        TImumInSettings::EValueApIsIapId );
+
+    // Add server address to settings
+    pop3Settings.SetAttr(
+        TImumDaSettings::EKeyServer, iMailboxRcvServer );
+
+    // Add security settings
+    pop3Settings.SetAttr(
+        TImumDaSettings::EKeySecurity, iMailboxRcvSecurity );
+
+    // Add APOP setting
+    pop3Settings.SetAttr(
+        TImumDaSettings::EKeyAPop, iMailboxAPop );
+
+    // Add receiving port number settings
+    pop3Settings.SetAttr(
+        TImumDaSettings::EKeyPort, iMailboxRcvPort );
+
+
+    // Fill in the login info
+    FillInLoginInfoL( iMailboxRcvUsername, iMailboxRcvPassword, pop3Settings );
+
+    IMUM_OUT();
+    }
+
+// ---------------------------------------------------------------------------
+// CImumCreatorPredefinedMailbox::FillInLoginInfoL()
+// ---------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::FillInLoginInfoL(
+    const TDesC& aUsername,
+    const TDesC& aPassword,
+    MImumInSettingsDataCollection& aConnectionSettings ) const
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::FillInLoginInfoL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    // Convert to 8-bit format
+    RBuf8 temp;
+    temp.CreateMax( KImumMboxMaxTextLength );
+    temp.Copy( aUsername );
+    aConnectionSettings.SetAttr( TImumDaSettings::EKeyUsername, temp );
+
+    temp.Copy( aPassword );
+    aConnectionSettings.SetAttr( TImumDaSettings::EKeyPassword, temp );
+
+    // Reset descriptors
+    temp.Close();
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+//  CImumCreatorPredefinedMailbox::ClearFields()
+// ----------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::ClearFields( const TUint aMailbox )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ClearFields, 0, KImumMtmLog );
+    IMUM1_IN( "Resetting with mailbox: %d", aMailbox );
+
+    iMailbox = aMailbox;
+    iMailboxName.Zero();
+    iMailboxSndServer.Zero();
+    iMailboxRcvServer.Zero();
+    iMailboxAccessPoint = KErrUnknown;
+    iMailboxProtocol = KErrUnknown;
+    iMailboxEmailAddress.Zero();
+    iMailboxFillCC = KErrUnknown;
+    iMailboxMessageSend = KErrUnknown;
+    iMailboxSndSecurity = KErrUnknown;
+    iMailboxAPop = KErrUnknown;
+    iMailboxRcvSecurity = KErrUnknown;
+    iMailboxHeaderCount = KErrUnknown;
+    iMailboxRcvUsername.Zero();
+    iMailboxRcvPassword.Zero();
+    iMailboxSndUsername.Zero();
+    iMailboxSndPassword.Zero();
+    iMailboxOmaEmnEnabled = KErrUnknown;
+    iMailboxRcvPort = KErrUnknown;
+    iMailboxSndPort = KErrUnknown;
+
+    IMUM_OUT();
+    }
+
+// ----------------------------------------------------------------------------
+// CImumCreatorPredefinedMailbox::GetKey()
+// ----------------------------------------------------------------------------
+//
+TInt CImumCreatorPredefinedMailbox::GetKey(
+    TUint32 aId,
+    TDes& aString )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::GetKey, 0, KImumMtmLog );
+    IMUM2_IN( "aId = %d, iMailbox = %d", aId, iMailbox );
+
+    // Get the mailbox by index
+    aId += iMailbox * KImumMailboxIndex;
+    TInt error = iCenRepSession->Get( aId, aString );
+
+    IMUM3( 0, "Key (%d) loading result: error = %d, aString = %S", aId, error, &aString );
+    IMUM_OUT();
+    return error;
+    }
+
+// ----------------------------------------------------------------------------
+// CImumCreatorPredefinedMailbox::GetKey()
+// ----------------------------------------------------------------------------
+//
+TInt CImumCreatorPredefinedMailbox::GetKey(
+    TUint32 aId,
+    TInt& aInt)
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::GetKey, 0, KImumMtmLog );
+    IMUM2_IN( "aId = %d, iMailbox = %d", aId, iMailbox );
+
+    // Get the mailbox by index
+    aId += iMailbox * KImumMailboxIndex;
+    TInt error = iCenRepSession->Get( aId, aInt );
+
+    IMUM3( 0, "Key (%d) loading result: error = %d, aInt = %d", aId, error, aInt );
+    IMUM_OUT();
+    return error;
+    }
+
+// ---------------------------------------------------------------------------
+// CImumCreatorPredefinedMailbox::DoSecurityConversion()
+// ---------------------------------------------------------------------------
+//
+void CImumCreatorPredefinedMailbox::DoSecurityConversion( TInt& aSecurity ) const
+    {
+    //Conversion concerns only even numbers
+    if ( ( aSecurity % 2 ) == 0 )
+        {
+        //convert 0 -> 2 and 2 -> 0
+        aSecurity ^= KImumConvertValue;
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CImumInSettingsDataValidator::GetDefaultSecurityPortL()
+// ----------------------------------------------------------------------------
+//
+TInt CImumCreatorPredefinedMailbox::GetDefaultSecurityPort(
+    const TInt aSecurity,
+    const TInt aProtocol )
+    {
+    IMUM_CONTEXT( CImumCreatorPredefinedMailbox::GetDefaultSecurityPortL, 0, KImumMtmLog );
+    IMUM_IN();
+
+    TInt port( 0 );
+
+    switch( aSecurity )
+        {
+        case KErrUnknown: //value is not set at all
+        case TImumDaSettings::EValueSecurityTls:
+        case TImumDaSettings::EValueSecurityOff:
+            {
+            switch ( aProtocol )
+                {
+                case TImumDaSettings::EValueProtocolImap4:
+                    port = TImumDaSettings::EDefaultPortImap4;
+                    break;
+
+                case TImumDaSettings::EValueProtocolPop3:
+                    port = TImumDaSettings::EDefaultPortPop3;
+                    break;
+
+                case TImumDaSettings::EValueProtocolSmtp:
+                    port = TImumDaSettings::EDefaultPortSmtp;
+                    break;
+                }
+            break;
+            }
+        case TImumDaSettings::EValueSecuritySsl:
+            {
+            switch ( aProtocol )
+                {
+                case TImumDaSettings::EValueProtocolImap4:
+                    port = TImumDaSettings::EDefaultSecurityPortImap4;
+                    break;
+
+                case TImumDaSettings::EValueProtocolPop3:
+                    port = TImumDaSettings::EDefaultSecurityPortPop3;
+                    break;
+
+                case TImumDaSettings::EValueProtocolSmtp:
+                    port = TImumDaSettings::EDefaultSecurityPortSmtp;
+                    break;
+                }
+            }
+            break;
+        }
+
+    IMUM_OUT();
+
+    return port;
+    }
+
+
+//  End of File
+