Bug #249614 --> When migrating from outlook, translate special outlook folder names to their mozilla

equivalents. When importing a POP3 server, use the Global Inbox.
This commit is contained in:
scott%scott-macgregor.org 2004-07-06 22:53:39 +00:00
Родитель 419d41e34c
Коммит 8a2e05318b
2 изменённых файлов: 47 добавлений и 3 удалений

Просмотреть файл

@ -72,6 +72,7 @@
#include "nsOutlookStringBundle.h" #include "nsOutlookStringBundle.h"
#include "nsIStringBundle.h" #include "nsIStringBundle.h"
#include "OutlookDebugLog.h" #include "OutlookDebugLog.h"
#include "nsUnicharUtils.h"
#include "nsOutlookMail.h" #include "nsOutlookMail.h"
@ -521,6 +522,13 @@ NS_IMETHODIMP ImportOutlookMailImpl::GetImportProgress( PRUint32 *pDoneSoFar)
NS_IMETHODIMP ImportOutlookMailImpl::TranslateFolderName(const nsAString & aFolderName, nsAString & _retval) NS_IMETHODIMP ImportOutlookMailImpl::TranslateFolderName(const nsAString & aFolderName, nsAString & _retval)
{ {
if (aFolderName.Equals(NS_LITERAL_STRING("Deleted Items"), nsCaseInsensitiveStringComparator()))
_retval = NS_LITERAL_STRING(kDestTrashFolderName);
else if (aFolderName.Equals(NS_LITERAL_STRING("Sent Items"), nsCaseInsensitiveStringComparator()))
_retval = NS_LITERAL_STRING(kDestSentFolderName);
else if (aFolderName.Equals(NS_LITERAL_STRING("Outbox"), nsCaseInsensitiveStringComparator()))
_retval = NS_LITERAL_STRING(kDestUnsentMessagesFolderName);
else
_retval = aFolderName; _retval = aFolderName;
return NS_OK; return NS_OK;
} }

Просмотреть файл

@ -61,6 +61,7 @@
#include "nsOutlookStringBundle.h" #include "nsOutlookStringBundle.h"
#include "OutlookDebugLog.h" #include "OutlookDebugLog.h"
#include "nsIPop3IncomingServer.h" #include "nsIPop3IncomingServer.h"
#include "nsIMessengerMigrator.h"
class OutlookSettings { class OutlookSettings {
public: public:
@ -368,8 +369,44 @@ PRBool OutlookSettings::DoPOP3Server( nsIMsgAccountManager *pMgr, HKEY hKey, cha
rv = pMgr->CreateIncomingServer( (const char *)pBytes, pServerName, "pop3", getter_AddRefs( in)); rv = pMgr->CreateIncomingServer( (const char *)pBytes, pServerName, "pop3", getter_AddRefs( in));
if (NS_SUCCEEDED( rv) && in) { if (NS_SUCCEEDED( rv) && in) {
rv = in->SetType( "pop3"); rv = in->SetType( "pop3");
// rv = in->SetHostName( pServerName);
// rv = in->SetUsername( (char *)pBytes); nsCOMPtr<nsIPop3IncomingServer> pop3Server = do_QueryInterface(in);
if (pop3Server) {
// set local folders as the Inbox to use for this POP3 server
nsCOMPtr<nsIMsgIncomingServer> localFoldersServer;
pMgr->GetLocalFoldersServer(getter_AddRefs(localFoldersServer));
if (!localFoldersServer)
{
// XXX: We may need to move this local folder creation code to the generic nsImportSettings code
// if the other import modules end up needing to do this too.
// if Local Folders does not exist already, create it
nsCOMPtr <nsIMessengerMigrator> messengerMigrator = do_GetService(NS_MESSENGERMIGRATOR_CONTRACTID, &rv);
if (NS_FAILED(rv)) {
IMPORT_LOG0( "*** Failed to create messenger migrator!\n");
return PR_FALSE;
}
rv = messengerMigrator->CreateLocalMailAccount(PR_FALSE);
if (NS_FAILED(rv)) {
IMPORT_LOG0( "*** Failed to create Local Folders!\n");
return PR_FALSE;
}
pMgr->GetLocalFoldersServer(getter_AddRefs(localFoldersServer));
}
// now get the account for this server
nsCOMPtr<nsIMsgAccount> localFoldersAccount;
pMgr->FindAccountForServer(localFoldersServer, getter_AddRefs(localFoldersAccount));
if (localFoldersAccount)
{
nsXPIDLCString localFoldersAcctKey;
localFoldersAccount->GetKey(getter_Copies(localFoldersAcctKey));
pop3Server->SetDeferredToAccount(localFoldersAcctKey.get());
pop3Server->SetDeferGetNewMail(PR_TRUE);
}
}
IMPORT_LOG2( "Created POP3 server named: %s, userName: %s\n", pServerName, (char *)pBytes); IMPORT_LOG2( "Created POP3 server named: %s, userName: %s\n", pServerName, (char *)pBytes);
@ -417,7 +454,6 @@ PRBool OutlookSettings::DoPOP3Server( nsIMsgAccountManager *pMgr, HKEY hKey, cha
return( result); return( result);
} }
PRBool OutlookSettings::IdentityMatches( nsIMsgIdentity *pIdent, const char *pName, const char *pServer, const char *pEmail, const char *pReply, const char *pUserName) PRBool OutlookSettings::IdentityMatches( nsIMsgIdentity *pIdent, const char *pName, const char *pServer, const char *pEmail, const char *pReply, const char *pUserName)
{ {
if (!pIdent) if (!pIdent)