62
Bearbeitungen
Andi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Andi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
== Einrichtung == | == Einrichtung == | ||
Als Server kommt Ubuntu 19.10 als virtueller Container auf einem Proxmox Host. dovecot-imapd spielt lokaler IMAP-Server, offlieneimap synct mit dem Remote-Server. | Als Server kommt Ubuntu 19.10 als virtueller Container auf einem Proxmox Host. dovecot-imapd spielt lokaler IMAP-Server, offlieneimap synct mit dem Remote-Server. | ||
ACHTUNG! offlineimap ist relativ RAM-hungrig, 512mb reichen bei mir nicht und führen zu kills. Ich empfehle mindestens 1gig! | |||
Die Anleitung folgt großteils https://www.j-dimension.com/setting-up-a-local-imap-cache-with-offlineimap/ | Die Anleitung folgt großteils https://www.j-dimension.com/setting-up-a-local-imap-cache-with-offlineimap/ | ||
Zeile 15: | Zeile 17: | ||
Jetzt müssen wir einen lokalen user anlegen unter dem dovecot und offlineimap laufen können, meiner heißt "user": | Jetzt müssen wir einen lokalen user anlegen unter dem dovecot und offlineimap laufen können, meiner heißt "user": | ||
adduser user | adduser user | ||
sudo usermod -a -G mail user | sudo usermod -a -G mail user | ||
sudo usermod -a -G mail dovecot | sudo usermod -a -G mail dovecot | ||
id user ##########die ID brauchen wir später für die user-Datei | id user ##########die ID brauchen wir später für die user-Datei | ||
/etc/dovecot/conf.d/10-auth.conf | /etc/dovecot/conf.d/10-auth.conf | ||
Comment this line: | Comment this line: | ||
# !include auth-system.conf.ext | # !include auth-system.conf.ext | ||
Uncomment this line: | Uncomment this line: | ||
!include auth-passwdfile.conf.ext | !include auth-passwdfile.conf.ext | ||
Adjust these lines: | Adjust these lines: | ||
auth_mechanisms = plain login digest-md5 cram-md5 | auth_mechanisms = plain login digest-md5 cram-md5 | ||
disable_plaintext_auth = no | disable_plaintext_auth = no | ||
Once finished, Dovecot will authenticate users against a file /etc/dovecot/users | Once finished, Dovecot will authenticate users against a file /etc/dovecot/users | ||
sudo touch /etc/dovecot/users | sudo touch /etc/dovecot/users | ||
sudo chown root:dovecot users | sudo chown root:dovecot users | ||
Syntax vom user file: <mailbox>:{PLAIN}<password>:<userid>:<groupid>::/var/mail/<mailbox> ######## hier brauchen wir die user und group id von oben! | |||
mail@mypublicserver.org:{PLAIN}mysecretpassword:1000:1000::/var/mail/mail@mypublicserver.org | Syntax vom user file: <mailbox>:{PLAIN}<password>:<userid>:<groupid>::/var/mail/<mailbox> ######## hier brauchen wir die user und group id von oben! | ||
mail@mypublicserver.org:{PLAIN}mysecretpassword:1000:1000::/var/mail/mail@mypublicserver.org | |||
/etc/dovecot/conf.d/10-mail.conf, folgenden Parameter ändern: | /etc/dovecot/conf.d/10-mail.conf, folgenden Parameter ändern: | ||
mail_location = maildir:/var/mail/%u/Maildir | mail_location = maildir:/var/mail/%u/Maildir | ||
und die location setzen: | und die location setzen: | ||
mkdir /var/mail/mail@mypublicserver.org | mkdir /var/mail/mail@mypublicserver.org | ||
chown -R root:mail /var/mail/mail@mypublicserver.org | chown -R root:mail /var/mail/mail@mypublicserver.org | ||
sudo chmod -R g+w /var/mail/mail@mypublicserver.org | sudo chmod -R g+w /var/mail/mail@mypublicserver.org | ||
chmod -R a+rwxt /var/mail/ | chmod -R a+rwxt /var/mail/ | ||
service dovecot restart | service dovecot restart | ||
Ab jetzt sollten wir uns am lokalen server schon anmelden können! | Ab jetzt sollten wir uns am lokalen server schon anmelden können! | ||
Zeile 59: | Zeile 62: | ||
=== OfflineIMAP === | === OfflineIMAP === | ||
Hier gibts ebenfalls eine Anleitung in obrigem Link, bzw. mehr infos unter https://wiki.archlinux.org/index.php/OfflineIMAP | Hier gibts ebenfalls eine Anleitung in obrigem Link, bzw. mehr infos unter https://wiki.archlinux.org/index.php/OfflineIMAP | ||
Vorteil bei dieser Config, wir verbinden uns auch auf den lokalen Server per IMAP, müssen uns damit nicht ums Dateisystem sorgen machen. | |||
Die config wird im homedir unseres erstellten users eingetragen: | Die config wird im homedir unseres erstellten users eingetragen: | ||
Zeile 68: | Zeile 73: | ||
metadata = ~/.offlineimap.IMAP | metadata = ~/.offlineimap.IMAP | ||
accounts = Account1 | accounts = Account1 | ||
maxsyncaccounts = 1 | maxsyncaccounts = 1 <- keine Paralell-Syncs, führt zu Race-Konditionen! | ||
ignore-readonly = no | ignore-readonly = no | ||
# ui = Quiet | # ui = Quiet | ||
Zeile 75: | Zeile 80: | ||
localrepository=LocalIMAP1 | localrepository=LocalIMAP1 | ||
remoterepository=RemoteIMAP1 | remoterepository=RemoteIMAP1 | ||
# autorefresh = 5 | # autorefresh = 5 <- Daemon Mode, disable! | ||
Zeile 84: | Zeile 89: | ||
remotepass=mysecretpassword | remotepass=mysecretpassword | ||
ssl=no | ssl=no | ||
folderfilter = lambda foldername: foldername not in ['Trash', 'Junk', 'Deleted Items'] | |||
maxconnections = | maxconnections = 1 | ||
[Repository RemoteIMAP1] | [Repository RemoteIMAP1] | ||
Zeile 94: | Zeile 99: | ||
remotepass= mysecretpassword | remotepass= mysecretpassword | ||
ssl=yes | ssl=yes | ||
maxconnections = | maxconnections = 1 | ||
folderfilter = lambda foldername: foldername not in ['Trash', 'Junk', 'Deleted Items'] | |||
Wenn das SSL Zertifikat ungültig ist hilft es den Fingerprint einzufügen: | |||
openssl s_client -connect $SERVER:$PORT -showcerts | openssl x509 -fingerprint | |||
diesen in die config rein: | |||
cert_fingerprint = ke:yk:ey:ke:y..... | |||
Möglicherweise wäre es nicht schlecht beim ersten Versuch dem remote-server ein "readonly=yes" zu geben... | |||
soweit so gut, wir können nun einen Probelauf machen: | |||
sudo -u user offlineimap --dry-run | |||
ACHTUNG! Der wirft Fehler sofern die Ordnerstruktur nicht gleich ist, dank dem dry-run werden die nicht angelegt! Der richtige Sync hat problemlos funktioniert | |||
=== Cron Job === | === Cron Job === | ||
Stupide kopiert aus dem Howto: | Stupide kopiert aus dem Howto: | ||
OfflineIMAP has a daemon mode that can run in the background. However, I found it to be too unstable / unreliable. I therefore use a script that runs as a cron job: | OfflineIMAP has a daemon mode that can run in the background. However, I found it to be too unstable / unreliable. I therefore use a script that runs as a cron job: | ||
#!/usr/bin/env bash | |||
if pgrep offlineimap; then pkill offlineimap; sleep 10s; fi | |||
offlineimap -o -u quiet | |||
Make the script executable and add it to the users crontab: | |||
chmod a+x /home/mylocaluser/scripts/offlineimap.sh | |||
crontab -e | |||
This is the crontab line: | |||
*/5 * * * * /home/mylocaluser/scripts/offlineimap.sh | |||
This will perform a synchronization every 5 minutes. Done! | |||
===Maildir Verwendung=== | |||
Hier der Link zur Doku wie die Mails abgelegt werden: | |||
https://wiki2.dovecot.org/MailboxFormat/Maildir |
Bearbeitungen