Tips en Trucs 2014

IMAP E-mail Backup

NoPriv.py is een python script om een op IMAP gebaseerd e-mail account om te zetten naar een met een browser te raadplegen HTML archief en een Maildir map. Niet één groot bestand (mbox), maar een webpagina die geen gebruik maakt van gepatenteerde code, waardoor je geen schrik moet hebben voor wachtwoorddiefstal.

Om het resultaat van dit script te bewonderen, kan je de een Demo met je browser bezoeken.

Eigenschappen

Installatie

Om de laatste versie van NoPriv.py te gebruiken, moet je de broncode van het script downloaden van het versiebeheersysteem van de ontwikkelaar. Dit klinkt ingewikkeld, maar is het niet. NoPriv.py is namelijk een Python script en moet dus niet gecompileerd te worden. Wel hebben we toegang tot het versiebeheersysteem GIT nodig. Daarvoor installeer je het git pakket met de opdracht:

dany@linux-18zg:~> sudo zypper install git
root's password:
Gegevens van installatiebron laden...
Lezen van geïnstalleerde pakketten...
Afhankelijkheden tussen pakketten oplossen...

De volgende 20 NIEUWE pakketten zullen worden geïnstalleerd:
  cvs cvsps git git-core git-cvs git-email git-gui gitk git-svn git-web libapr1 
  libapr-util1 libserf-1-1 perl-Authen-SASL perl-Error perl-Net-SMTP-SSL 
  subversion subversion-perl tk xhost 

De volgende 8 aanbevolen pakketten zijn automatisch geselecteerd:
  git-cvs git-email git-gui gitk git-svn git-web perl-Authen-SASL 
  perl-Net-SMTP-SSL 

Het volgende pakket wordt gesuggereerd, maar zal niet worden geïnstalleerd:
  git-daemon 

20 nieuw te installeren pakketten.
Totale downloadgrootte: 9,7 MiB Na de operatie zal aanvullend 40,9 MiB worden 
gebruikt.
Doorgaan? [j/n/? alle opties tonen] (j): 
pakket perl-Authen-SASL-2.16-2.1.2.noarch wordt opgehaald
                                         (1/20),  55,2 KiB (105,1 KiB uitgepakt)
Ophalen: perl-Authen-SASL-2.16-2.1.2.noarch.rpm .........................[klaar]
pakket perl-Error-0.17020-2.1.2.noarch wordt opgehaald
                                         (2/20),  28,0 KiB ( 49,5 KiB uitgepakt)
Ophalen: perl-Error-0.17020-2.1.2.noarch.rpm ............................[klaar]
pakket perl-Net-SMTP-SSL-1.01-10.1.2.noarch wordt opgehaald
                                         (3/20),   7,8 KiB (  4,5 KiB uitgepakt)
Ophalen: perl-Net-SMTP-SSL-1.01-10.1.2.noarch.rpm .......................[klaar]
pakket cvs-1.12.12-180.1.2.x86_64 wordt opgehaald
                                         (4/20), 371,4 KiB (902,3 KiB uitgepakt)
Ophalen: cvs-1.12.12-180.1.2.x86_64.rpm .................................[klaar]
pakket cvsps-2.1-179.1.2.x86_64 wordt opgehaald
                                         (5/20),  56,1 KiB (120,6 KiB uitgepakt)
Ophalen: cvsps-2.1-179.1.2.x86_64.rpm ...................................[klaar]
pakket libapr1-1.4.8-3.2.1.x86_64 wordt opgehaald
                                         (6/20),  92,8 KiB (216,6 KiB uitgepakt)
Ophalen: libapr1-1.4.8-3.2.1.x86_64.rpm .................................[klaar]
pakket xhost-1.0.6-2.1.2.x86_64 wordt opgehaald
                                         (7/20),  23,4 KiB ( 46,9 KiB uitgepakt)
Ophalen: xhost-1.0.6-2.1.2.x86_64.rpm ...................................[klaar]
pakket git-core-1.8.4-3.1.4.x86_64 wordt opgehaald
                                         (8/20),   3,1 MiB ( 18,9 MiB uitgepakt)
Ophalen: git-core-1.8.4-3.1.4.x86_64.rpm ....................[klaar (1,0 MiB/s)]
pakket libapr-util1-1.5.2-3.1.3.x86_64 wordt opgehaald
                                         (9/20),  89,0 KiB (229,1 KiB uitgepakt)
Ophalen: libapr-util1-1.5.2-3.1.3.x86_64.rpm ............................[klaar]
pakket tk-8.6.1-2.1.x86_64 wordt opgehaald
                                        (10/20),   1,7 MiB (  4,5 MiB uitgepakt)
Ophalen: tk-8.6.1-2.1.x86_64.rpm ............................[klaar (1,2 MiB/s)]
pakket git-web-1.8.4-3.1.4.x86_64 wordt opgehaald
                                        (11/20), 132,2 KiB (318,5 KiB uitgepakt)
Ophalen: git-web-1.8.4-3.1.4.x86_64.rpm .................................[klaar]
pakket git-email-1.8.4-3.1.4.x86_64 wordt opgehaald
                                        (12/20),  84,1 KiB (100,0 KiB uitgepakt)
Ophalen: git-email-1.8.4-3.1.4.x86_64.rpm ...............................[klaar]
pakket git-cvs-1.8.4-3.1.4.x86_64 wordt opgehaald
                                        (13/20), 133,7 KiB (328,0 KiB uitgepakt)
Ophalen: git-cvs-1.8.4-3.1.4.x86_64.rpm .................................[klaar]
pakket git-1.8.4-3.1.4.x86_64 wordt opgehaald
                                        (14/20),  55,8 KiB (  2,6 KiB uitgepakt)
Ophalen: git-1.8.4-3.1.4.x86_64.rpm .......................[klaar (308,6 KiB/s)]
pakket libserf-1-1-1.3.2-1.1.x86_64 wordt opgehaald
                                        (15/20),  63,9 KiB (142,9 KiB uitgepakt)
Ophalen: libserf-1-1-1.3.2-1.1.x86_64.rpm ...............................[klaar]
pakket gitk-1.8.4-3.1.4.x86_64 wordt opgehaald
                                        (16/20), 167,7 KiB (587,1 KiB uitgepakt)
Ophalen: gitk-1.8.4-3.1.4.x86_64.rpm ....................................[klaar]
pakket git-gui-1.8.4-3.1.4.x86_64 wordt opgehaald
                                        (17/20), 242,7 KiB (  1,1 MiB uitgepakt)
Ophalen: git-gui-1.8.4-3.1.4.x86_64.rpm .................................[klaar]
pakket subversion-1.8.5-2.11.1.x86_64 wordt opgehaald
                                        (18/20),   2,1 MiB (  8,3 MiB uitgepakt)
Ophalen: subversion-1.8.5-2.11.1.x86_64.rpm .................[klaar (1,1 MiB/s)]
pakket subversion-perl-1.8.5-2.11.1.x86_64 wordt opgehaald
                                        (19/20), 806,0 KiB (  4,2 MiB uitgepakt)
Ophalen: subversion-perl-1.8.5-2.11.1.x86_64.rpm ..........[klaar (941,8 KiB/s)]
pakket git-svn-1.8.4-3.1.4.x86_64 wordt opgehaald
                                        (20/20), 428,4 KiB (916,8 KiB uitgepakt)
Ophalen: git-svn-1.8.4-3.1.4.x86_64.rpm ...................[klaar (937,6 KiB/s)]
( 1/20) Installeert: perl-Authen-SASL-2.16-2.1.2 ........................[klaar]
( 2/20) Installeert: perl-Error-0.17020-2.1.2 ...........................[klaar]
( 3/20) Installeert: perl-Net-SMTP-SSL-1.01-10.1.2 ......................[klaar]
( 4/20) Installeert: cvs-1.12.12-180.1.2 ................................[klaar]
( 5/20) Installeert: cvsps-2.1-179.1.2 ..................................[klaar]
( 6/20) Installeert: libapr1-1.4.8-3.2.1 ................................[klaar]
( 7/20) Installeert: xhost-1.0.6-2.1.2 ..................................[klaar]
( 8/20) Installeert: git-core-1.8.4-3.1.4 ...............................[klaar]
( 9/20) Installeert: libapr-util1-1.5.2-3.1.3 ...........................[klaar]
(10/20) Installeert: tk-8.6.1-2.1 .......................................[klaar]
(11/20) Installeert: git-web-1.8.4-3.1.4 ................................[klaar]
(12/20) Installeert: git-email-1.8.4-3.1.4 ..............................[klaar]
(13/20) Installeert: git-cvs-1.8.4-3.1.4 ................................[klaar]
(14/20) Installeert: git-1.8.4-3.1.4 ....................................[klaar]
(15/20) Installeert: libserf-1-1-1.3.2-1.1 ..............................[klaar]
(16/20) Installeert: gitk-1.8.4-3.1.4 ...................................[klaar]
(17/20) Installeert: git-gui-1.8.4-3.1.4 ................................[klaar]
(18/20) Installeert: subversion-1.8.5-2.11.1 ............................[klaar]
Aanvullende rpm-uitvoer:
Updating /etc/sysconfig/svnserve...


(19/20) Installeert: subversion-perl-1.8.5-2.11.1 .......................[klaar]
(20/20) Installeert: git-svn-1.8.4-3.1.4 ................................[klaar]

Daarna kan je de laatste versie van NoPriv.py downloaden met de opdracht:

dany@linux-18zg:~> git clone git://github.com/RaymiiOrg/NoPriv.git
Cloning into 'NoPriv'...
remote: Reusing existing pack: 210, done.
remote: Total 210 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (210/210), 414.43 KiB | 182.00 KiB/s, done.
Resolving deltas: 100% (73/73), done.
Checking connectivity... done

En NoPriv.py is klaar voor gebruik.

Configuratie

De volledige configuratie staat in het configuratie-bestand NoPriv/nopriv.ini. Dit kan je met de volgende opdrachten aanpassen:

dany@linux-18zg:~> cd NoPriv/
dany@linux-18zg:~/NoPriv> joe nopriv.ini

En bevat standaard de volgende instellingen:

[nopriv]
imap_server = imap.gmail.com
imap_user = xyz@googlemail.com
imap_password = my_secrept_password
imap_folder = INBOX, Draft, Newletters

#optional
ssl = true
incremental_backup = true

Pas opeenvolgend de IMAP server, gebruikersnaam, het bijhorende wachtwoord en de te backupppen mappen aan. Om alle mappen in één keer te backuppen, gebruik je de imap_folder instelling imap_folder = NoPriv_All.

Als je al uw e-mail bij een GMail account wilt backuppen, kan je imap_folder instelling imap_folder = [Gmail]/All Mail instellen. Deze mapnaam kan afhankelijk van de gebruikte taal een andere naam hebben. Bij Nederlandstalige GMail accounts gebruik je de imap_folder instelling imap_folder = [Gmail]/Alle Berichten.

E-mails backuppen

Om uw E-mails te backuppen, voer je in de map NoPriv de volgende opdracht uit:

dany@linux-18zg:~/NoPriv> python ./nopriv.py
##############################################
# NoPriv.py IMAP Email Backup by Raymii.org. #
# version 6, released 17-11-2013.            #
# https://raymii.org - NoPriv.py is GPLv3    #
##############################################

Runtime Information:
2.7.5 (default, May 30 2013, 16:55:57) [GCC]

Listen to me very carefully because I'm only going to say this once. Coffee - black.

Available IMAP4 folders:
-   [Gmail]/Alle berichten 
-   [Gmail]/Concepten 
-   [Gmail]/Met ster 
-   [Gmail]/Belangrijk 
-   [Gmail]/Spam 
-   [Gmail]/Verzonden berichten 
-   [Gmail]/Prullenbak 
-   Facturen 
-   INBOX 
-   Priv&AOk- 
-   Reizen 
-   Werk 
-   [Gmail] 

Selected folders:
- [Gmail]/Alle berichten 
- [Gmail]/Concepten 
- [Gmail]/Met ster 
- [Gmail]/Belangrijk 
- [Gmail]/Spam 
- [Gmail]/Verzonden berichten 
- [Gmail]/Prullenbak 
- Facturen 
- INBOX 
- Priv&AOk- 
- Reizen 
- Werk 
- [Gmail] 


Getting messages from server from folder: [Gmail]/Alle berichten.
Saving message 1.
Saving message 2.
...
Saving message 21.
Saving message 22.
Saving message 23.
Done with folder: [Gmail]/Alle berichten.


Getting messages from server from folder: [Gmail]/Concepten.
Done with folder: [Gmail]/Concepten.


Getting messages from server from folder: [Gmail]/Met ster.
Done with folder: [Gmail]/Met ster.


Getting messages from server from folder: [Gmail]/Belangrijk.
Saving message 1.
Saving message 2.
Done with folder: [Gmail]/Belangrijk.


Getting messages from server from folder: [Gmail]/Spam.
Saving message 1.
Saving message 2.
Done with folder: [Gmail]/Spam.


Getting messages from server from folder: [Gmail]/Verzonden berichten.
Done with folder: [Gmail]/Verzonden berichten.


Getting messages from server from folder: [Gmail]/Prullenbak.
Saving message 1.
Saving message 2.
Saving message 3.
...
Saving message 62.
Saving message 63.
Saving message 64.
Done with folder: [Gmail]/Prullenbak.


Getting messages from server from folder: Facturen.
Done with folder: Facturen.


Getting messages from server from folder: INBOX.
Saving message 1.
Saving message 2.
Saving message 3.
...
Saving message 18.
Saving message 19.
Saving message 20.
Done with folder: INBOX.


Getting messages from server from folder: Priv&AOk-.
Done with folder: Priv&AOk-.


Getting messages from server from folder: Reizen.
Done with folder: Reizen.


Getting messages from server from folder: Werk.
Done with folder: Werk.


Getting messages from server from folder: [Gmail].
Error in IMAP Query: command SEARCH illegal in state AUTH, only allowed in states SELECTED.
Does the imap folder "[Gmail]" exists?
Done with folder: [Gmail].


Processing folder: [Gmail]/Alle berichten.
Processing mail 1 from notification+zj4o_cafjz26@facebookmail.com with subject Annick Goethals is deze week jarig.
Processing mail 2 from update+zj4o_cafjz26@facebookmail.com with subject Paul Darge heeft gereageerd op je foto..
Processing mail 3 from notification+zj4o_cafjz26@facebookmail.com with subject Re: [ACCB GROUP] Zalig Kerstfeest..
...
Processing mail 21 from buzz+z13htr5rowqnvxdc523qvdkzhsaxufu2p@gmail.com with subject Buzz from Dany Pinoy.
Processing mail 22 from buzz+z12vjlg44xayubltu23qvdkzhsaxufu2p@gmail.com with subject Buzz from Dany Pinoy.
Processing mail 23 from buzz+z13vzdj5ymf5s5frm04civha3xr0vrdjceo@gmail.com with subject Buzz from Dany Pinoy.
Done with folder: [Gmail]/Alle berichten.


Processing folder: [Gmail]/Concepten.
Error: Folder "[Gmail]/Concepten" is probably empty or does not exists: /home/dany/NoPriv/NoPrivMaildir/.[Gmail].Concepten.
Done with folder: [Gmail]/Concepten.


Processing folder: [Gmail]/Met ster.
Error: Folder "[Gmail]/Met ster" is probably empty or does not exists: /home/dany/NoPriv/NoPrivMaildir/.[Gmail].Met ster.
Done with folder: [Gmail]/Met ster.


Processing folder: [Gmail]/Belangrijk.
Processing mail 1 from subs@linuxjournal.com with subject Confirming your Renewal to LINUX JOURNAL!.
Processing mail 2 from contact@vab.be with subject Afdruk van je aansluiting bij VAB.
Done with folder: [Gmail]/Belangrijk.


Processing folder: [Gmail]/Spam.
Processing mail 1 from noreply@lists.topware.com with subject 3 days left! - BIG Year End Sales - save up to 90%.
Processing mail 2 from noreply@lists.topware.com with subject BIG Year End Sales - save up to 90%.
Done with folder: [Gmail]/Spam.


Processing folder: [Gmail]/Verzonden berichten.
Error: Folder "[Gmail]/Verzonden berichten" is probably empty or does not exists: /home/dany/NoPriv/NoPrivMaildir/.[Gmail].Verzonden berichten.
Done with folder: [Gmail]/Verzonden berichten.


Processing folder: [Gmail]/Prullenbak.
Processing mail 1 from no-reply@stumblemail.com with subject "The Top 10 Web Design Skills You WILL Need!," and more recommendations just for you.
Processing mail 2 from update+zj4o_cafjz26@facebookmail.com with subject Dany, je hebt 6 nieuwe meldingen, 1 evenementsuitnodiging en 1 vriendschapsverzoek.
Processing mail 3 from notification+zj4o_cafjz26@facebookmail.com with subject Tilde heeft je op Facebook uitgenodigd voor SNT Fuif.
...
Processing mail 62 from groups@linkedin.com with subject Dany Pinoy, word lid van deze 4 groepen die we voor u aanbevelen.
Processing mail 63 from update+zj4o_cafjz26@facebookmail.com with subject Dany, je hebt 2 evenementsuitnodigingen.
Processing mail 64 from notification+zj4o_cafjz26@facebookmail.com with subject [ACCB GROUP] Nieuw evenement: Windows 8.
Done with folder: [Gmail]/Prullenbak.


Processing folder: Facturen.
Error: Folder "Facturen" is probably empty or does not exists: /home/dany/NoPriv/NoPrivMaildir/.Facturen.
Done with folder: Facturen.


Processing folder: INBOX.
Processing mail 1 from notification+zj4o_cafjz26@facebookmail.com with subject Annick Goethals is deze week jarig.
Processing mail 2 from update+zj4o_cafjz26@facebookmail.com with subject Paul Darge heeft gereageerd op je foto..
Processing mail 3 from notification+zj4o_cafjz26@facebookmail.com with subject Re: [ACCB GROUP] Zalig Kerstfeest..
...
Processing mail 18 from helpdesk@greenmangaming.com with subject Welcome to Green Man Gaming.
Processing mail 19 from subs@linuxjournal.com with subject Confirming your Renewal to LINUX JOURNAL!.
Processing mail 20 from contact@vab.be with subject Afdruk van je aansluiting bij VAB.
Done with folder: INBOX.


Processing folder: Priv&AOk-.
Error: Folder "Priv&AOk-" is probably empty or does not exists: /home/dany/NoPriv/NoPrivMaildir/.Priv&AOk-.
Done with folder: Priv&AOk-.


Processing folder: Reizen.
Error: Folder "Reizen" is probably empty or does not exists: /home/dany/NoPriv/NoPrivMaildir/.Reizen.
Done with folder: Reizen.


Processing folder: Werk.
Error: Folder "Werk" is probably empty or does not exists: /home/dany/NoPriv/NoPrivMaildir/.Werk.
Done with folder: Werk.


Processing folder: [Gmail].
Error: Folder "[Gmail]" is probably empty or does not exists: /home/dany/NoPriv/NoPrivMaildir/.[Gmail].
Done with folder: [Gmail].

De backup raadplegen

De e-mails en alles wat erbij hoort (zoals bijvoegsels) kan je bekijken met uw favoriete browser. Klik daarvoor in de map NoPriv op het bestand index.html. Of voor wie in de terminal wil blijven werken:

dany@linux-18zg:~/NoPriv> sudo zypper install links
Gegevens van installatiebron laden...
Lezen van geïnstalleerde pakketten...
Afhankelijkheden tussen pakketten oplossen...

Het volgende NIEUWE pakket zal worden geïnstalleerd:
  links 

1 nieuw te installeren pakket.
Totale downloadgrootte: 1,7 MiB Na de operatie zal aanvullend 3,0 MiB worden 
gebruikt.
Doorgaan? [j/n/? alle opties tonen] (j): 
pakket links-2.7-2.1.2.x86_64 wordt opgehaald
                                          (1/1),   1,7 MiB (  3,0 MiB uitgepakt)
Ophalen: links-2.7-2.1.2.x86_64.rpm .......................[klaar (806,1 KiB/s)]
(1/1) Installeert: links-2.7-2.1.2 ......................................[klaar]
dany@linux-18zg:~/NoPriv> links index.html
Links

Voor en tegen

NoPriv.py is een eenvoudige manier om snel uw e-mail verkeer te backuppen. Daarenboven is het eenvoudig in te stellen. De backup is op een gebruiksvriendelijke manier met een browser te doorbladeren. De backup gebruikt voor het terugzetten een standaard formaat om e-mails op te slaan, dit maakt het terugzetten naar om het even welk e-mailsysteem een stuk eenvoudiger. Deze meest opvallende voordelen van NoPriv.py bewijzen nogmaals dat werken met opdrachten niet zo moeilijk, gebruiksvriendelijk en snel is.

Toch is NoPriv op enkele punten voor verbetering vatbaar. Zo werkt NoPriv niet op de recentste Python 3 versie. Daar de broncode vrij beschikbaar is, zal een python programmeur wel eens tijd en goesting vinden om dit fantastische script naar Python 3 te porten (om te zetten). NoPriv ondersteunt niet alle karaktersets, wel de twee belangrijkste: utf-8 en ascii. NoPriv heeft geen zoekfunctie. NoPriv sorteert de berichten steeds op datum (recenste bovenaan), m.a.w. de het sorteren is niet instelbaar.