A leírában végigvezetlek, hogy hogyan lehet a Gmail levelező szolgáltatásból tetszőleges Mbox, vagy Maildir formátumban kiexportálni a levelzéseidet.
Kulcsok elkészítése a hitelesítéshez
Látogassunk el a https://console.developers.google.com weboldalra, jelentkezzünk be a fiókunkba, ha szükséges, Madj az Apis&Services menüpont alatt keressük meg a Credentials alpontot. A Create Credentials gombra kattintva válasszuk ki az OAuth Client ID kapcsolót, majd az other alpontot, Adjunk egy nevet a szolgáltatásnak majd az ADD gombra kattintva megkapjuk a következő attribútum nevű paramétereket
Client ID Client secret
Ezeket mentsük el, mert szükségünk lesz rá.
Getmail telepítése forrásból
A getmail szoftver megfelelő verzióját a http://pyropus.ca/software/getmail/old-versions oldalon érhetjük el. Töltsük le, majd telepítsük fel a programot.
cd /tmp wget http://pyropus.ca/software/getmail/old-versions/getmail-5.6.tar.gz tar xvf getmail-5.6.tar.gz cd getmail-5.6 python setup.py build sudo python setup.py install
Konfigurálás
A célunk az, hogy a getmail OAuth2 szabvány szerint hitelesítse magát a Gmail szervere felé. Elsőként hozzuk létre a szükséges könyvtárakat
mkdir -p ~/.getmail ~/bak/mail mkdir ~/bak/mail/new ~/bak/mail/cur ~/bak/mail/tmp
Majd a szükséges konfigurációs állományt
nano ~/.getmail/gmail.json #majd illesszük be az alábbi tartalmat {"scope": "https://mail.google.com/", "user": "your_account@gmail.com", "client_id": "Client ID", "client_secret": "Client secret", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "redirect_uri": "urn:ietf:wg:oauth:2.0:oob", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs"}
Ezek után lépjünk be a ~/.getmail könyvtárba és hozzuk létre az alábbi tartalommal a getmailrc állományt
[retriever] type = SimpleIMAPSSLRetriever server = imap.gmail.com username = your_account@gmail.com use_xoauth2 = True password_command = ("getmail-gmail-xoauth-tokens", "/home/<user>/.getmail/gmail.json") #A user értelemszerűen a Linuxos felhasználó nevünkre cserélendő
Nincs más hátra, mint a kulcsot lekérni. Természetesen a user -t itt is cserélni kell a megfelelőre
getmail-gmail-xoauth-tokens --init /home/<user>/.getmail/gmail.json
A böngészőben megnyílik a kért oldal, az ott lévő kulcsot kell parancssorba bemásolni a promthoz és már készen is vagyunk. A json állomány módosul a szükségletek szerint.
Finomhangolás
A példában a Maildir szabvány szerint exportálom ki a leveleket, ehhez a getmailrc fájlt egészítsük ki, alább a végleges állapot látható
[retriever] type = SimpleIMAPSSLRetriever server = imap.gmail.com username = your_account@gmail.com use_xoauth2 = True password_command = ("getmail-gmail-xoauth-tokens", "/home/<user>/.getmail/gmail.json") mailboxes=("Inbox", "[Gmail]/Sent Mail",) [destination] type= Maildir path= ~/bak/mail/ [options] verbose = 2 message_log = ~/.getmail/log
E szerint a beérkező- és kimenő leveleket exportáljuk, a megadott könyvtárba, ehhez IMAP protokolt használunk, OAuth2 hitelesítéssel. Nincs más dolgunk, mint elindítani a levelek letöltését
getmail --rcfile=/home/<user>/.getmail/getmailrc -q
Amennyiben Mbox formátumot akarunk használni, a destinatin szekciót konfiguráljuk át.
[destination] type = Mboxrd path = ~/bak/gmailbackup.mbox
El is készültünk, lehet írni rá egy cron ütemezést és automatikusan elvégzi az archiválást a program.