Di questi 100 utenti , 20 utilizzano il client MS Outlook con l'utility Google App Sync (che spesso e volentieri andava in crash! n.d.r)
Come procedere quindi alla migrazione dei dati di posta, calendario e contatti? (stiamo parlando di oltre 300GB)
Ecco qui di seguito la mia soluzione:
MIGRAZIONE EMAIL
Ho utilizzato l'utility IMAPSync abilitando sia su Domino che su Gmail il protocollo IMAP, quindi sostanzialmente la migrazione viene fatta leggendo i dati da IMAP e scrivendoli su IMAP.
Successivamente ho creato tutte le caselle di posta di Gmail in Domino registrandole con l'import TXT in fase di registrazione (Ho fatto un export da Gmail, organizzato le colonne con Excel, ed registrati tutti gli utenti in massa con il file preparato appositamente. Per ulteriori dettagli leggere qua)
Poi ho attivato il servizio IMAP su Domino ed ho preparato tutti i database di posta all'accesso IMAP con il comando load convert -e PATH
Infine ho utilizzato l'utility IMAPSync, facendo in modo che leggesse da un CSV così formato i dati di accesso alle caselle e li migrasse con uno script:
usernamegmail1;pwdgmail1;usernamedomino1;pwddomino1
usernamegmail2;pwdgmail2;usernamedomino2;pwddomino2
usernamegmail3;pwdgmail3;usernamedomino3;pwddomino3
etc...
In linux (Centos) ho creato uno script ( start.sh ) che fa la migrazione ed in fondo vedrete che esistono diverse --regextrans2 che perfettono matchare le folders IMAP native speciali di GMAIL con quelle di IBM Domino (ci sono volute diverse prove e test per capire come calibrarlo al meglio)
Ecco a voi lo script:
#!/bin/bash
#Configure servers
SERVER1=imap.gmail.com
SERVER2=IP DOMINO SERVER IMAP
#Uncomment to hide folder sizes
#FAST="--nofoldersizes"
#Uncomment to do a dry run (no actual changes)
DRY="--dry"
#Uncomment to just sync folders (no messages)
JUSTFOLDERS="--justfolders"
#Uncomment to just connect (no syncs at all)
#JUSTCONNECT="--justconnect"
#Set the path to your imapsync binary
imapsync=imapsync
#Users file
if [ -z "$1" ]
then
echo "No users text file given."
exit
fi
if [ ! -f "$1" ]
then
echo "Given users text file \"$1\" does not exist"
exit
fi
{ while IFS=';' read u1 p1 u2 p2; do
$imapsync --usecache --tmpdir /var/tmp \
--host1 ${SERVER1} --user1 "$u1" \
--password1 "$p1" --ssl1 \
--host2 ${SERVER2} \
--user2 "$u2" \
--password2 "$p2" \
${FAST} ${DRY} ${JUSTFOLDERS} ${JUSTCONNECT} \
--sep2 '\' \
--syncinternaldates \
--skipcrossduplicates \
--useheader 'X-Gmail-Received' \
--useheader 'Message-Id' \
--folderlast '[Gmail]/Tutti i messaggi' \
--regextrans2 's,^Inbox\\(.*),$1,i' \
--regextrans2 's/^\[Gmail\]\\Bozze$/Drafts/' \
--regextrans2 's/^\[Gmail\]\\Posta inviata$/Sent/' \
--regextrans2 's/^\[Gmail\]\\Cestino$/Trash/'
done ; } < $1
Infine lanciando il comando ./start.sh users.csv il gioco è fatto...la migrazione è partita
Tra l'altro i marcatori di lettura vengono anch'essi migrati con successo.
Se dovessero esserci problemi con il seguente errore
Failure: error login on [imap.gmail.com] with user [XXXX@XXXX.com] auth [LOGIN]: 2 NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)
Significa che va attivata la secureless per ogni casella GMAIL cliccando su ATTIVA da questo link https://www.google.com/settings/security/lesssecureapps per ogni utente GMAIL..
Una volta completata la migrazione tutte le mail verranno viste come bozze e le date potrebbero essere sballate.
Ho quindi scritto e messo in esecuzione in background su tutti i database di posta un agent Lotusscript che sistema i campi PostedDate e DeliveredDate del Documento Notes impostando il valore prendendolo dal campo X-IMAP-Internaldate
Qui sotto un estratto:
ForAll v In dbmail.Views
Set foldertmp=v
If foldertmp.isFolder Then
If foldertmp.Name<>"($Alarms)" And foldertmp.Name<>"($Inbox-Categorized1)" And foldertmp.Name<>"($MAPIUseContacts)" And foldertmp.Name<>"(Diario di gruppo)" And foldertmp.Name<>"(Regole)" And foldertmp.Name<>"(Sent)" And foldertmp.Name<>"(Drafts)" Then
Set docNotes=foldertmp.Getfirstdocument()
Print "Inizio Processo Folder... "+foldertmp.Name
Call AddLog(foldertmp.Name)
conta=0
foldertmp.Autoupdate=false
While Not(docNotes Is Nothing)
conta=conta+1
Print "Processo Messaggio... "+CStr(conta)+" - "+foldertmp.Name
If docNotes.Hasitem("X-IMAP-Internaldate") Then
campoData=docNotes.Getitemvalue("X-IMAP-Internaldate")
else
campoData=docNotes.Created
End If
Call docNotes.Replaceitemvalue("PostedDate",campoData )
Call docNotes.Replaceitemvalue("DeliveredDate",campoData )
Call docNotes.save(False,false)
Set docNotes=foldertmp.Getnextdocument(docNotes)
Wend
Print "Fine Processo Folder... "+foldertmp.Name
End If
End If
End ForAll
MIGRAZIONE CALENDARI
I calendari di GMAIL possono essere esportati in formato .ICS ed ogni postazione IBM Notes può tranquillamente importarli (attenzione solo al fatto che il massimo numero di eventi importabili è 5000)
Qualora si superino i 5000 eventi allora è necessario sviluppare o trovare un altra libreria LS o tool di terze parti.
MIGRAZIONE CONTATTI
I contatti di GMAIL possono essere esportati come VCF e all'interno della rubrica di IBM Notes sono facilmente importabili.
Spero che la mia esperienza possa giovare a qualun'altro
A presto
6 Commenti:
Grazie della risposta
Ok , grazie per la risposta ;-)
@matteo: la motivazione maggiore è stata l'acquisizione di questa holding che usava Gmail e l'accorpamento alla sede centrale che utilizzava Domino.
E cmq sia onestamente visto come lavoravano con GMAIL ed Outlook (il plugin per outlook) hanno guadagnato di brutto secondo me sotto diversi aspetti.
Gmail for business è la conversione della posta personale su Business...onestamente rispetto a Domino non ci sono paragoni (migrati ad una 9.0.1FP4 e traveler 9.0.1.7)
Poi si può dire quello che si vuole costi e non costi (ma le licenze Domino per chi arriva dalla concorrenza hanno esattamente lo stesso costo di GMAIL tra l'altro) ma Domino è pensato per chi lavora nel mondo Business (mail-in, room reservation, policy, configurazioni SMTP particolari, personalizzazione spinta dei template, SSO AD..vado avanti? non credo)
In Gmail mancano tanti aspetti aziendali di management e controllo che hai con l'infrastruttura on premise. Per me non ci sono paragoni.
Poi vabbhè matteo infine ora mandare una mail al tuo collega è fast perchè avviene tutto in LAN...ma questo lo sentiamo probabilmente solo noi in Italia con la pessima connettività.
Ciao!
Bravo buon lavoro e post interessante !
Puoi scrivere alcune delle motivazioni che hanno spinto il cliente a passare da GoogleApps -> Domino?
problemi?usabilita?voglia di ritorno on premise e abbandono cloud? Sarebbe interessante , grazie ;-)
Le label Gmail sono ricreare come cartelle su notes. In più se hai outlook su Gmail con la prima regola che ho creato (outlook crea sotto inbox le folders) le converte nella root principale di domino.
Usare le api rest sarebbe stato più arduo
Speriamo ne seguano altre ....
Immagino tu abbia gestito la coesistenza con lo smart server.
Per importare le mail hai provato ad usare il file del takeout ? In teoria dovrebbero esserci le label quindi mettere le mail in tutte le cartella avrebbe dovuto essere semplice.
Sai se qualcuno ha usato le rest APi di gmail ? Questa opzione dovrebbe anche permettere un client Gmail con db su notes.