immerda:OfflineIMAP

Aus immerda
Version vom 7. April 2019, 14:19 Uhr von Go.2-b (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Category:immerda Category:Anleitungen Category:Email == Setup == * OfflineIMAP kümmert sich um die Synchronisation zwischen Immerda und dem loka…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


Setup

  • OfflineIMAP kümmert sich um die Synchronisation zwischen Immerda und dem lokalen Verzeichnis.
    • Verbindung über TOR.
    • Passwort verschlüsselt abgespeichert (im aktuellen Beispiel in pass).
  • Dovecot kümmert sich um die Auslieferung des lokalen Verzeichnisses an dein E-Mail Program.

OfflineIMAP

Normalerweise wird eine OfflineIMAP Konfiguration in der Datei ~/.offlineimaprc erstellt.

[general]
accounts = alice
pythonfile = ~/.offlineimap.py

[Account alice]
localrepository = alice-local
remoterepository = alice-remote

[Repository alice-local]
type = Maildir
localfolders = /var/mail/alice@immerda.ch/Maildir
nametrans = lambda name: re.sub('^\.', , name)

[Repository alice-remote]
cert_fingerprint = 2991ea70a0fa0d8cabf26050e69be43ec080fd0f
type = IMAP
keepalive = 300
starttls = no
ssl = yes
remotehost = ysp4gfuhnmj6b4mb.onion
remoteport = 993
remoteuser = alice@immerda.ch
remotepasseval = mailpasswd("email/immerda.ch/alice@immerda.ch")
folderfilter = lambda folder: not re.search('^(|INBOX\.(Trash\..*|spam))$', folder)
nametrans = lambda name: '.' + name

In dieser Konfiguration sind folgende Punkte zu beachten / anzupassen:

  • Es gibt immer zwei Repositories pro Account, eines lokal und eines remote (hier alice-local und alice-remote genannt).
  • Die E-Mail Adresse alice@immerda.ch muss durch deine eigene E-Mail Adresse ersetzt werden.
  • Das Passwort wird mithilfe des Scriptes ~/.offlineimap.py ausgelesen, das kann in deinem Setup anders sein.
    • remotepasseval gibt die Funktion an, mit welcher das Passwort ausgelesen wird.
    • email/immerda.ch/alice@immerda.ch ist der Password Store Pfad.
  • Diverse Ordner werden nicht synchronisiert ('^(|INBOX\.(Trash\..*|spam))$'):
    • INBOX.Trash.* (gelöschte Ordner)
    • INBOX.spam ("spam" / "Junk" / "junk", es braucht nicht alle)
    • "" (das sollte immer vorhanden sein)
  • Der cert_fingerprint ist der Fingerprint des Zertifikates von Immerda. Dieses kann von Zeit zu Zeit ändern.

Password Store

Das Passwort wird in diesem Beispiel in pass abgelegt. Das ist ein Passwort Manager, welcher deine Passwörter mithilfe von deinem GPG Key verschlüsselt.

Im aktuellen Beispiel sollte eine Passwort Datei in etwa wie folgt aussehen:

kei-k3ohf9foukoodeaV3zooshah^jet
login: alice@immerda.ch
offlineimap: Eis9teir^aeghee4ieseiMiphohofahN

Das erste ist dein Hauptpasswort, welches du brauchst um dich bei https://users.immerda.ch/ einzuloggen (dein Hauptpasswort). Das Passwort, welches OfflineIMAP verwendet, ist ein App Passwort. App Passwörter können über https://users.immerda.ch/app_passwords erstellt werden.

Das Script, welches die Passwörter ausliest, ist in diesem Beispiel unter ~/.offlineimap.py abgelegt:

#!/usr/bin/env python3

import subprocess
import sys


def mailpasswd(secret):
    proc = subprocess.Popen(
        ['pass', secret],
        stdout=subprocess.PIPE,
    )
    output = proc.communicate()[0].decode("utf-8").splitlines()
    retcode = proc.wait()
    if retcode != 0:
        return 
    line = [l for l in output if l.startswith('offlineimap: ')][0]
    password = line.split(": ", 1)[1]
    return password


if __name__ == '__main__':
    print(sys.argv[1])
    print(mailpasswd(sys.argv[1]))


Dovecot