Mi capita molto di frequente, per lavoro, di dover trasferire interi siti web e relative caselle di posta elettronica con relativi messaggi annessi, ma durante la fase di trasferimento di un dominio, il più delle volte, si è all’oscuro di quando il passaggio avvenga in modo definitivo da un server ad un altro.
Il problema non è tanto il sito web ma il più delle volte è la posta elettronica e per evitare di perdere messaggi importanti la migliore delle soluzioni potrebbe essere quella di sincronizzare la vecchia e la nuova casella di posta molto frequentemente.
Purtroppo se non avete accesso al pannello di controllo di un vostro competitor per andare a cambiare i DNS in anticipo, l’unica strada percorribile è utilizzare la funzione imapsync, che permette, tramite un semplice comando da terminale, di sincronizzare tutta la posta, dalla vecchia casella a quella nuova.
Premessa
Supponiamo che vogliate trasferire il vostro sito presso un nuovo provider, questo perché magari vi siete stancati del vostro attuale provider e volte cambiare per avere un prezzo più vantaggioso ed ottimizzare le prestazioni del vostro sito, o più semplicemente perché volete provare qualcosa di nuovo.
Prendiamo in esame un vostro sito, sul quale però da anni avete una casella di posta sempre con lo stesso nome a dominio e volete trasferire appunto, oltre al dominio, anche la relativa casella di posta, mantenendo sempre lo stesso ed identico indirizzo email.
La cosa da fare è semplicemente trasferire la posta elettronica dalla vecchia casella a quella nuova. Le cose che anzitutto dovete avere con voi sono in primis, i dati di accesso sia della nuova che della vecchia casella.
Intallare imapsync
Questa procedura serve ad installare il pacchetto di imapsync sulla vostra macchina, in ambiente Mac e vale sia per la procedura manuale sia per la procedura in automatico tramite cronjob.
Aprite il vostro Terminale ed eseguite il seguente comando:
Fatto questo ora utilizzeremo Brew come gestore per i pacchetti, (se non conoscete Brew, potete installarlo seguendo la procedura che trovate al sito ufficiale) dal quale installeremo appunto imapsync, sempre da terminale eseguite il seguente comando:
Ora avete installato nella vostra macchina imapsync. Maggiori dettagli potete trovarli sul sito ufficiale.
Trasferire la posta tramite Terminale – Procedura Manuale
Bene, ora non ci resta che mettere in atto tutto il meccanismo affinché avvenga la sincronizzazione tra 2 caselle IMAP. Vi basterà aprire il terminale da Mac ed inserire questo script, ovviamente dovrete cambiare questo script con i vostri dati:
Lasciate ora che vi spieghi esattamente questo codice:
- imapsync viene richiamato appunto il pacchetto da eseguire
- –host1 indichiamo l’host nel quale risiede l’attuale posta
- 99.99.99.99 qui dobbiamo specificare l’indirizzo IP del server o direttamente il CNAME o MX come indirizzo, per esempio potrebbe essere non un indirizzo IP ma anche un indirizzo testuale del tipo: example.nomedominio.com
- –port1=993 qui dobbiamo specificare la porta settata nel server, che nel caso di IMAPS è la 993 se fosse una comune posta senza il certificato di sicurezza avremmo una porta IMAP semplice 143
- –user1 [email protected] qui inseriamo l’indirizzo email dal quale vogliamo estrarre la posta
- –password1 ‘123456789’ semplicemente qui inseriamo la password dell’attuale casella di posta
- –ssl1 questa invece è l’opzione che stabilisce l’impostazione del server, nel caso di una porta semplice come la 143 in IMAP possiamo ometterla del tutto o utilizzare i protocolli tls1 o tls2
- –ssl1 –host2 mail.example.com –user2 [email protected] –password2 ‘123456789‘ tutto come spiegato sopra ma qui inseriremo le credenziali di accesso e le impostazioni per la nuova casella di posta sul nuovo host
- –automap –justfolders –dry queste invece sono le opzioni per il pacchetto imapsync di default
Ora non vi resta che lanciare il comando sopra con le giuste credenziali ed attendere, a seconda della grandezza della casella di posta e dei messaggi al suo interno, che lo script faccia il lavoro sporco per voi!
Ovviamente non sono qui a spiegarvi tutto il log completo che vi verrà generato una volta che avrete eseguito questo script, ma leggendolo attentamente dovreste capire bene se tutti i messaggi di posta siano al loro posto!
Il codice che avete eseguito sopra non ha effettivamente importato nulla nella nuova casella, questo perché le due opzioni finali del comando eseguono solo un test preventivo. Una volta che avete controllato che tutto è andato nel migliore dei modi, potete rieseguire lo script omettendo i 2 parametri finali, ovvero –justfolders –dry.
E quindi avrete questo codice, che se eseguito, lancerà in modo definitivo l’operazione:
Trasferire la posta tramite Terminale – Procedura Automatica
Ora che avete compreso la procedura manuale ed avete appurato che questo metodo funziona, non vi resta che salire di livello e far eseguire in modo automatico la procedura ad ogni intervallo che volete.
Per farlo cercherò di spiegarvi nel modo più comprensibile possibile il da farsi.
Come prima cosa possiamo creare una cartella che potete inserire nel percorso che preferite o, come in questo esempio, sul vostro Desktop. La chiameremo “cronjobs“.
Fatto questo, al suo interno andremo a creare un file, rinominandolo “operazione1.sh“. Potete usare un editor di testo semplice e gratuito come Sublime Text Editor e ricordatevi che l’estensione del file dovrà essere una “.sh“.
Ora al suo interno inseriremo la vera e propria funzione che ci consentirà di eseguire l’operazione di routine tramite cron job. Sempre con il vostro editor preferito, aprite il file ed al suo interno inserite il comando come segue, ricordandovi di immettere i vostri valori predefiniti come ho spiegato sopra:
Una volta inserito il codice, salvate e chiudete il file. Ora non ci resta che dire al nostro Mac di eseguire delle azioni di routine in automatico. Per fare questo, dobbiamo aprire il terminale e digitiamo il seguente comando:
Questo codice in realtà non esegue nulla, ma bensì è un comando da terminale che si occupa di mostrarci tutte le varie operazioni di routine che sono attualmente presenti. Nel caso non vi fosse nulla a video, con molta probabilità non avete nessun cron job attivo, ma almeno ora sapete come poter vedere i vostri cron job attualmente attivi.
Ora andiamo invece ad inserire il comando per automatizzare il processo del file operazione1.sh come visto sopra. Aprite il terminale e digitate il seguente comando:
Questo vi aprirà l’editor dove inserire al suo interno il codice seguente:
Ora non vi resta che premere il tasto control+X per chiudere, poi salvare e confermare con Y (che sta per yes) e premere INVIO.
Fatto! Ora avete impostato il vostro Mac per avviare ogni giorno alle ore 10:50 ed alle ore 14:50 il vostro comando che avete inserito nel file operazione1.sh.
Se notate gli asterischi hanno il seguente significato:
Ci sono esattamente 5 asterischi che simboleggiano da sinistra verso destra:
1 asterisco: minuti (da 0 a 59)
2 asterisco: ora (da 0 a 23)
3 asterisco: giorno (da 1 a 31)
4 asterisco: mese (da 1 a 12)
5 asterisco: giorno della settimana (da 0 a 6) Da 0 a 6 sarebbe da domenica a sabato si usa anche 7 che è domenica ma è come scrivere 0
In questo modo avrete chiaro come funzionano anche i tempi per il cronjob.