/** ReadImapSettingsFromConfigurationFileL() Modifies the IMAP related default setting and IAP objects. @param aSettingsFile Configuration/setting file path. @param aImapSet CImImap4Settings object. @param aImapIapPref CImIAPPreferences object. */ EXPORT_C void CT_MsgUtilsReadEmailSettingsFromConfigFile::ReadImapSettingsFromConfigurationFileL( TDesC& aSettingsFile, CImImap4Settings& aImapSet, CImIAPPreferences& aImapIapPref,const TDesC& /* aPtrEmailAdd */) { // Parses the setting file CT_MsgUtilsConfigFileParserUtility* scriptFileParser = CT_MsgUtilsConfigFileParserUtility::NewL(aSettingsFile); CleanupStack::PushL(scriptFileParser); TPtrC8 string8Ptr; TPtrC stringPtr = KNone(); TInt intTmp; if(scriptFileParser->GetFieldAsString(KCfgImapServerAddress, stringPtr) == KErrNone) { aImapSet.SetServerAddressL(stringPtr); } CT_MsgUtilsConfigFileMachineName* machineNameFile = CT_MsgUtilsConfigFileMachineName::NewLC(stringPtr); TPtrC8 machineName(machineNameFile->MachineName()); if(scriptFileParser->GetFieldAsString8(KCfgImapLoginName, string8Ptr) == KErrNone) { aImapSet.SetLoginNameL(string8Ptr); } else { aImapSet.SetLoginNameL(machineName); } if(scriptFileParser->GetFieldAsString8(KCfgImapPassword, string8Ptr) == KErrNone) { aImapSet.SetPasswordL(string8Ptr); } else { aImapSet.SetPasswordL(machineName); } if(scriptFileParser->GetFieldAsInteger(KCfgImapPort, intTmp) == KErrNone) { aImapSet.SetPort(intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapSecureSockets, intTmp) == KErrNone) { aImapSet.SetSecureSockets( (TBool) intTmp ); } if(scriptFileParser->GetFieldAsInteger(KCfgImapSSLWrapper, intTmp ) == KErrNone) { aImapSet.SetSSLWrapper( (TBool) intTmp ); } if(scriptFileParser->GetFieldAsString8(KCfgImapFolderPath, string8Ptr) == KErrNone) { aImapSet.SetFolderPathL(string8Ptr); } if(scriptFileParser->GetFieldAsString8(KCfgImapPathSeperator, string8Ptr) == KErrNone) { if ( string8Ptr.Length() == 1 ) { aImapSet.SetPathSeparator( string8Ptr[0] ); } } if(scriptFileParser->GetFieldAsInteger(KCfgImapMaxEmailSize, intTmp) == KErrNone) { aImapSet.SetMaxEmailSize(intTmp); } if(scriptFileParser->GetFieldAsString(KCfgImapGetMailOptions, stringPtr) == KErrNone) { TImap4GetMailOptions setGetMailOptions = CT_MsgUtilsEnumConverter::ConvertDesToTImap4GetMailOptions(stringPtr); aImapSet.SetGetMailOptions(setGetMailOptions); } if(scriptFileParser->GetFieldAsInteger(KCfgImapInboxSynchronisationLimit, intTmp) == KErrNone) { aImapSet.SetInboxSynchronisationLimit(intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapMailboxSynchronisationLimit, intTmp) == KErrNone) { aImapSet.SetMailboxSynchronisationLimit(intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapAutoSendOnConnect, intTmp) == KErrNone) { aImapSet.SetAutoSendOnConnect((TBool) intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapDeleteEmailsWhenDisconnecting, intTmp) == KErrNone) { aImapSet.SetDeleteEmailsWhenDisconnecting((TBool) intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapAcknowledgeReceipts, intTmp) == KErrNone) { aImapSet.SetAcknowledgeReceipts((TBool) intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapDisconnectedUserMode, intTmp) == KErrNone) { aImapSet.SetDisconnectedUserMode((TBool) intTmp); } if(scriptFileParser->GetFieldAsString(KCfgImapSynchronise, stringPtr) == KErrNone) { TFolderSyncType setFolderSyncType = CT_MsgUtilsEnumConverter::ConvertDesToTFolderSyncType(stringPtr); aImapSet.SetSynchronise(setFolderSyncType); } if(scriptFileParser->GetFieldAsString(KCfgImapSubscribe, stringPtr) == KErrNone) { TFolderSubscribeType setFolderSubscribeType = CT_MsgUtilsEnumConverter::ConvertDesToTFolderSubscribeType(stringPtr); aImapSet.SetSubscribe(setFolderSubscribeType); } if(scriptFileParser->GetFieldAsInteger(KCfgImapUpdatingSeenFlags, intTmp) == KErrNone) { aImapSet.SetUpdatingSeenFlags((TBool) intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapSyncRate, intTmp) == KErrNone) { aImapSet.SetSyncRateL(intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapFetchSize, intTmp) == KErrNone) { aImapSet.SetFetchSizeL(intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapIdle, intTmp) == KErrNone) { aImapSet.SetImapIdle( (TBool) intTmp ); } if(scriptFileParser->GetFieldAsInteger(KCfgImapIdleTimeout, intTmp) == KErrNone) { aImapSet.SetImapIdleTimeoutL(intTmp); } if(scriptFileParser->GetFieldAsString(KCfgImapPartialMailOptions, stringPtr) == KErrNone) { TImImap4PartialMailOptions setImap4PartialMailOptions = CT_MsgUtilsEnumConverter::ConvertDesToTImImap4PartialMailOptions(stringPtr); aImapSet.SetPartialMailOptionsL(setImap4PartialMailOptions); } if(scriptFileParser->GetFieldAsInteger(KCfgImapBodyTextSizeLimit, intTmp) == KErrNone) { aImapSet.SetBodyTextSizeLimitL(intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapAttachmentSizeLimit, intTmp) == KErrNone) { aImapSet.SetAttachmentSizeLimitL(intTmp); } if(scriptFileParser->GetFieldAsString(KCfgImapIapList, stringPtr) == KErrNone) { ReadImapIAPAndAddL(scriptFileParser, (TDesC&)KCfgImapIapList, aImapIapPref); } if(scriptFileParser->GetFieldAsInteger(KUseExpunge, intTmp) == KErrNone) { aImapSet.SetUseExpunge( (TBool) intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapSNAPId, intTmp) == KErrNone) { aImapIapPref.SetSNAPL(intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapBearerMobility, intTmp) == KErrNone) { aImapSet.SetBearerMobility((TBool) intTmp); } if(scriptFileParser->GetFieldAsInteger(KCfgImapDownloadRules, intTmp) == KErrNone) { aImapSet.SetUseSyncDownloadRules((TBool) intTmp); } CleanupStack::PopAndDestroy(2,scriptFileParser); }
LOCAL_C void InitL() { // Load the serial comms device drivers. If this is not done, // connecting via NT-RAS returns KErrNotFound (-1). TInt driverErr; driverErr=User::LoadPhysicalDevice(PDD_NAME); if (driverErr!=KErrNone && driverErr!=KErrAlreadyExists) User::Leave(driverErr); driverErr=User::LoadLogicalDevice(LDD_NAME); if (driverErr!=KErrNone && driverErr!=KErrAlreadyExists) User::Leave(driverErr); CActiveScheduler* scheduler = new (ELeave) CActiveScheduler; CActiveScheduler::Install(scheduler); CleanupStack::PushL(scheduler); testUtils = CEmailTestUtils::NewLC(test); testUtils->CreateAllTestDirectories(); testUtils->FileSession().SetSessionPath(_L("C:\\")); testUtils->CleanMessageFolderL(); testUtils->GoServerSideL(); testUtils->ClearEmailAccountsL(); test.Next(_L("Create Data Component FileStores")); testUtils->CreateSmtpServerMtmRegL(); // Loading the DLLs testUtils->CreateRegistryObjectAndControlL(); testUtils->InstallSmtpMtmGroupL(); testUtils->GoClientSideL(); // Create Services smtpService = testUtils->CreateSmtpServiceL(); imap4Service = testUtils->CreateImapServiceL(); CEmailAccounts* accounts = CEmailAccounts::NewLC(); TSmtpAccount smtpAccount; accounts->GetSmtpAccountL(smtpService, smtpAccount); accounts->SetDefaultSmtpAccountL(smtpAccount); testUtils->WriteComment(_L("Create Imap Services ")); // Delete any *.scr files in c:\logs\email directory. testUtils->DeleteScriptFilesFromLogsDirL(); testUtils->iMsvEntry->SetEntryL(imap4Service); //overwrite the settings with test code one. Don't want the default settings. CImImap4Settings* settings = new(ELeave) CImImap4Settings(); CleanupStack::PushL(settings); settings->Reset(); TInt serverLength = testUtils->MachineName().Length(); HBufC* serverad = HBufC::NewL(serverLength + 7 ); // 7 is the length of KServerAddress CleanupStack::PushL(serverad); serverad->Des().Copy(testUtils->MachineName()); serverad->Des().Append(KServer); settings->SetServerAddressL(*serverad); CleanupStack::PopAndDestroy(serverad); settings->SetDeleteEmailsWhenDisconnecting(ETrue); settings->SetAcknowledgeReceipts(ETrue); settings->SetAutoSendOnConnect(ETrue); settings->SetLoginNameL(testUtils->MachineName()); settings->SetPasswordL(testUtils->MachineName()); settings->SetPort(143); settings->SetFolderPathL(KFolderPath); accounts->GetImapAccountL(imap4Service, imapAccount); accounts->SaveImapSettingsL(imapAccount, *settings); CleanupStack::PopAndDestroy(2,accounts); //accounts,settings test.Printf(_L("Instantiating IMAP4 Client MTM")); testUtils->InstantiateImapClientMtmL(); }