• Community Support
  • DEGerman
  • Einzelne E-Mail aus Backup wiederherstellen funktioniert nicht

  • Ssax

      Moolevel 5
    • Edited

    Moin moin Ihr Lieben und zunächst noch die besten Wünsche für 2025!

    In 2024 konnte ich dank @DocFraggle meine Kuh bei Hetzner neu aufsetzen und bin dort auch wegen der Skalierbarkeit und der StorageBox mega zufrieden.

    Nun ist es soweit, dass ich gern einzelne E-Mail aus einem Backup wiederherstellen möchte. Dazu habe ich die besagte E-Mail aus dem Backup Verzeichnis in das Mailverzeichnis kopiert:
    cp '1736073146.M694750P232619.810c575154d0,S=9955,W=10118:2,Sab' /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/domain.test/name/Maildir/.INBOX.restore/cur/

    Dies allein scheint aber nicht zu funktionieren, denn wenn dieser User den restore Ordner im SoGO aufruft, erhält er diese Fehlermeldung:

    Lösche ich das File der Mail dort wieder raus, kann SoGo den Ordner auch wieder anzeigen.

    Habt ihr einen Rat für mich, wie ich die einzelne E-Mail wiederherstellen kann, ohne dass ich wegen dieser E-Mail das komplette Mailcow restoren muss?

    Ich danke euch!
    LG

    • Qqupfer

        Moolevel 3
      • Edited

      Aus dem Bauch würde ich sagen, das passt was mit der Verschlüsselung nicht.
      Stammt das Backup aus der “gleichen” Instanz. Oder aus einer anderen?

      Wie auch immer, ein (umständlicher), aber bei mir funktionierender weg:

      Entschlüssel die orignal Nachricht.
      Ein Script, was das machen sollte :-)
      (als Basis diente das aus der original Doku: docs.mailcow.email Icon Mail crypt - mailcow: dockerized documentation

      )

      #!/bin/bash
      
      
      ecprivkey=/root/backup/mailcow-2025-01-06-08-43-56/crypt/ecprivkey.pem
      ecpubkey=/root/backup/mailcow-2025-01-06-08-43-56/crypt/ecpubkey.pem
      
      
      if [ ! -d crypt_input ]; then
        mkdir "crypt_input";
        echo "Please put encrypted mails to $(realpath crypt_input)"
        exit 0 
      fi
      [ ! -d output ] && mkdir output
      
      out_dir=$(realpath output)
      in_dir=$(realpath crypt_input)
      
      
      
      container=$(docker images --filter "reference=mailcow/dovecot" -q )
      
      docker run --entrypoint "" --rm -it \
       -v $ecprivkey:/ecprivkey.pem \
       -v $ecpubkey:/ecpubkey.pem \
       -v $out_dir:/out \
       -v $in_dir:/in \
       "$container" \
       bash -c 'find /in -type f | while read -r file; do
                 doveadm fs get compress lz4:1:crypt:private_key_path=/ecprivkey.pem:public_key_path=/ecpubkey.pem:posix:prefix=/ "$file" > /out/$(basename $file)
      
               done'

      und die entschlüsselte Mail dann nach /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data/domain.test/name/Maildir/.INBOX.restore/new/ (nicht cur)

      • sax likes this.

      Have something to say?

      Join the community by quickly registering to participate in this discussion. We'd like to see you joining our great moo-community!

      • Ssax

          Moolevel 5

        Ich danke dir schon mal für deine Antwort. Ich probiere das die nächsten Tage aus.
        Die Mail stammt aus der gleichen Instanz.

        LG

        No one is typing