Getmail 5.6 XOAUTH2 Gmail exportáláshoz

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.