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.