Es ist schon ein paar Tage her, das die automatische Archivierung mittels MailStore Home in einem Beitrag besprochen wurde (guckst du hier). Der grundlegende Befehl für die Archivierung hat sich zwar nicht geändert, allerdings funktionierte das automatische Beenden schon lange nicht mehr wie einst beschrieben.
Ein Update musste her, zudem sollte es eine elegantere Lösung werden. Wie so oft führt der Weg über AutoIt. Letztlich wird geprüft, ob die Archivierung erfolgreich abgeschlossen wurde und dann MailStore Home beendet. Bei Misserfolg bleibt das Fenster so stehen wie es ist.
Im Archiv sind der Quellcode und eine für 64-bit Windows kompilierte Exe-Datei enthalten.
Beispiel-Skript:
@echo off rem Auf erfolgreichen Abschluss der E-Mail-Archivierung pruefen start "" "C:\Backup\CheckMailStoreHomeEnd.exe" rem MailStore Home starten / E-Mail-Archivierung durchfuehren start "" "C:\Program Files (x86)\MailStore\MailStore Home\MailStoreHome.exe" /c archive --id="1"
Mittels Aufgabe lässt sich der gesamte Vorgang unter Windows automatisieren, das klappt allerdings nur unter folgenden Voraussetzungen:
- Nur erfolgreich bzw. möglich, wenn diese ohne erhöhte Rechte ausgeführt wird.
- Nur erfolgreich bzw. möglich, wenn der ausführende Benutzer angemeldet ist.

Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Ich habe jetzt Windows 10 und Office 2019. Zuvor, mit Windows 10 und Office 2016 hat das wunderbar funktioniert, aber jetzt öffnet sich nur noch das Programm, die Sicherung startet aber nicht. Die ID habe ich mehrfach geändert, mit 5 und 1 und mit Bindestrichen und langem Bis-Strich. Es geht einfach nicht mehr. Hat jemand einen Tipp für mich?
Hallo Caroline,
funktionert die manuelle Archivierung?
Ja, manuell klappt es. Ich habe das Ganze mit einer Aufgabenplanung bisher gelöst, musste dann immer manuell schließen. Ich habe aber keine Ahnung, wie man ein Skript schreibt (über cmd?). Das Skript, dass du mir im Link geschickt hast, habe ich dort reinkopiert, aber das war offenbar nicht richtig. Wäre für Hilfe dankbar.
Danke und liebe Grüße von Caroline
Hallo Caroline,
wir gehen das mal Schritt für Schritt durch:
– Mit Notepad eine neue Datei erstellen. Der Dateiname vor dem Punkt ist egal, hinter dem Punkt muss “.bat” oder “.cmd” stehen. Beispiel: “MailStoreHome.cmd”.
– Den Inhalt des Beispiel-Skripts in diese neu erstellte Datei kopieren.
– In den gleichen Ordner, in dem sich das Skript befindet den Inhalt des CheckMailStoreHomeEnd.zip-Archivs hinzufügen.
– Mit einem Doppelklick auf die zuvor erstellte Skript-Datei das Ganze zur Ausführung bringen und beobachten was passiert.
Es sollte MailStoreHome starten und die erste Archivierungsaufgabe ausgeführt werden. Ich gehe an dieser Stelle einfach mal davon aus, das MailStoreHome installiert ist und das es nur eine Archivierungsaufgabe gibt. Es kann sein, wenn es zuvor noch andere Archivierungsaufgaben gab, das man die richtige ID erst noch ermitteln muss. Dazu, sofern notwendig, später mehr.
Bevor man jetzt mit Windows-Aufgabe etc. weiter macht, bitte erstmal schauen, ob es soweit läuft wie erwartet.
Vielen Dank, Andy!!
Funktioniert super! 🙂
Hey super, genau nach so einer Funktion habe ich noch gesucht. Vielen Dank Andy! 🙂
Coole Sache, danke! Simple Lösung, nice.
Dies ermöglicht es, auch mehrere Postfächer automatisch archivieren zu lassen. Siehe folgendes Beispiel (Pfade und id sind natürlich anzupassen).
rem Befehl: “C:UsersAMDocumentsMailStore Homeautobackup.bat”
rem Auf erfolgreichen Abschluss der E-Mail-Archivierung pruefen
start “” “C:UsersAMDocumentsMailStore HomeCheckMailStoreHomeEnd.exe”
rem Postfach 1
“C:Program Files (x86)deepinventMailStore HomeMailStoreHome.exe” /c archive –id=”2″
timeout /T 3
start “” “C:UsersAMDocumentsMailStore HomeCheckMailStoreHomeEnd.exe”
rem Postfach 2
“C:Program Files (x86)deepinventMailStore HomeMailStoreHome.exe” /c archive –id=”4″
Lieber Andy,
mit der neuen Version 12.1.1.14767 von MailStore Home funktioniert die CheckMailStoreHomeEnd.exe nicht mehr. Das Programm wird nicht mehr automatisch beendet.
Danke im Voraus fürs Fixen!
Habe es gerade mal getestet, bei mir funktioniert es nach wie vor. Seitens des Dialogs, auf den das Programm angewiesen ist, hat sich scheinbar an den relevanten Teilen nichts geändert.
Hallo Andy,
Vielen Dank für diese super Lösung. Nach einigen Startschwierigkeiten (Ich nutze MailStoreHomePortable und daher ist mein Archiv Pfad etwas anders) klappt es jetzt super und ich nutze die .bat Datei einfach im Autotart.
Vielen Dank auch für das aktuell halten dieser Lösung, schön mal ein Forum/einen Blog zu finden, der nicht seit mindestens 5 Jahren nur noch verstaubt =)
Hi und vielen Dank für die tolle Erklärung. Auch danke an Andi für die Erklärung wie das ganze für zwei Postfächer funktioniert!
Ist es möglich das ganze auch versteckt im Hintergrund auszuführen?
Versteckt klappt leider nur bedingt, siehe:
MailStore Home: Versteckt ausführen und Archivieren mit Rückgabewert
Hallo,
Ich kann keine Archivierung über Aufgabenplanung ausführen. Kann es wegen des Passworts von Mailstores sein?
wenn ich das skript ausführe, wird von mir das Passwort von Mailstore verlangt. Kann man das PAsswort als Parameter im Batch-Datei übergeben.
Danke.
Kuber
Mit “Passwort” ist der Kennwortschutz beim Zugriff auf das Archiv gemeint oder das Kennwort des Postfaches?
So oder so sind Kennwort-Eingaben im Skript nicht vorgesehen.
Hallo,
vor dem selben Problem stehend habe ich Ihre Lösung gefunden: besten Dank dafür! Auf der Basis ist folgender Batch entstanden, der via Aufgabenplanung mit »cmd.exe /c start “” c:backupbackup.cmd« jede Nacht um 3:00 Uhr gestartet wird. (MailStoreHome v13.1, Win v21H1) Klappt mit Bordmittel ohne zusätzliche Apps. Hier die Datei:
@echo off
:: Backup.cmd
:: MailStore Home automatische E-Mail-Archivierung
:: —————————————————————
:: 2021-05-28 RH // erstellt
:: 2021-05-30 RH // Taskkill ergänzt mit Parameter /T /F
:: 2021-05-31 RH // Protokollierung ergänzt
:: Logfile generieren
set LogFile=C:backupBackup_%DATE%.log
echo [%DATE% %TIME%] Mailstore Backup gestartet … >>%LogFile% 2>&1
:: Backup starten mit Protokoll
call :backup >>%LogFile% 2>&1
:: ————————————————————————————————————————
:backup
echo [%DATE% %TIME%] Task #1 – Thunderbird
start “” “C:Program Files (x86)MailStoreMailStore HomeMailStoreHome.exe” /c archive –id=”1″
echo [%DATE% %TIME%] Task #2 – Outlook
start “” “C:Program Files (x86)MailStoreMailStore HomeMailStoreHome.exe” /c archive –id=”2″
echo [%DATE% %TIME%] 5 Minuten warten … dann sind (hoffentlich) beide Tasks beendet
C:WindowsSystem32timeout /T 300 >NUL
:: Prozess beenden
echo [%DATE% %TIME%] MailStore Prozess beenden …
C:WindowsSystem32taskkill /F /T /IM MailStoreHome.exe
echo [%DATE% %TIME%] Script beendet
echo —————————————————————
:: Rechner runterfahren
C:/Windows/System32/shutdown.exe /h
Meherere Archivierungsaufgaben:
mit ID=1 läuft eine von mehreren Arch.aufgaben wunderbar
Ich habe ID 0, 2, 3 ausprobiert, leider ohne Erfolg.
Gibt es eine Lösung – Version 13.1 ?
Danke im voraus
Nachtrag: mehrere Arch.aufgaben
gelöst !
Aufgabe markieren
M-links >>> Verknüpfung auf Desktop erstellen
Verknüpfung Eigenschaften – hier stehts !!
bei mir 4
Danke
Ich hab das bei mir so gelöst, dass einmal pro Stunde ein Backup gefahren wird per SYSTEM Accunt
PsExec -accepteula -s -i “C:Program Files (x86)MailStoreMailStore HomeMailStoreHome.EXE” /c archive –id=”1″
Zu jeder halben Stunde läuft dieses Batch um Mailstore Home zu beenden
taskkill /im MailstoreHome.exe /f
Wichtig war hier, dass der SYSTEM Account die gleichen Ordner verwendet, das kann man so einstellen:
PsExec” -accepteula -s -i “C:Program Files (x86)MailStoreMailStore HomeMailStoreHome.EXE” /config”
Die ersten beiden Batches starte ich über “System Scheduler Pro” (https://www.splinterware.com/products/scheduler.html) per SYSTEM (also völlig unsichtbar)
Ausserden läuft alle paar Stunden ein Autohotkey Script, welches das Alter der Backups prüft
Loop E:DatenMailStore HomeMailStoreBackupData*.*
{
If ( A_LoopFileTimeModified >= Time )
{
Time := A_LoopFileTimeModified
File := A_LoopFileLongPath
}
}
StringTrimRight, Date, Time, 6
CurrentDate = %A_YYYY%%A_MM%%A_DD%
EnvSub, CurrentDate, %Date%, days
Difference := CurrentDate
If Difference > 2
{
Run, C:batchessendmailsendmail.bat “Mailstore Home Backup not running” “Last Mailstore Home Backup is about %Difference% Days old, please check”, Hide
}
Hallo!
Ich habe das Script auf zwei verschiedenen Rechnern ausprobiert. Auf einem läuft es, auf dem anderen habe ich ein merkwürdiges Problem.
Wenn ich den Link, den Mailstore generiert hat, starte, werden alle Postfächer und Outlook gesichert.
Wenn ich das Script starte, werden nur zwei Postfächer gesichert – zwei von drei GMail-Postfächern. Es ist egal, ob ich das Script zeitgesteuert oder über “Ausführen” starte.
Ich kann beobachten, dass in der Fortschrittsanzeige kurz alle Konten auftauchen. Dann schließt sich die Fortschrittsanzeige wieder. Im Fenster “E-Mail archivieren” bei den Konten, die nicht gesichert wurden, die Uhrzeit der letzten manuellen Sicherung und “Erfolgreich”. Bei den beiden GMail-Konten die gesichert wurden, steht die Uhrzeit des Laufes aus der Aufgabenplanung.
In der Aufgabenplanung steht “Der Vorgang wurde erfolgreich beendet”
Der Aufruf sieht so aus:
start “” “C:Program Files (x86)MailStoreMailStore HomeMailStoreHome.exe” /c archive –id=”14,23,21,30,33,7,32,31″
Wenn ich in der Aufgabenplanung MailstoreHome.exe und die Argumente eintrage, funktioniert es richtig.
Alles sehr dubios.
Irgendeine Idee?
Hallo.
Danke für die Inspiration hier. Leider hat bei mir die CheckMailStoreHomeEnd.exe nicht funktioniert.
Hab stundenlang rumprobiert. Ich vermute, es gab mit einer neueren Version in der Zwischenzeit eine Änderung.
Genauer vermute ich, dass im Data Ordner beim Start .lock Dateien erstellt werden, die beim ordentlichen Beenden eigentlich wieder gelöscht werden.
Da jedoch Mailstore nicht “sauber” beendet wird, bleiben die .lock Dateien erhalten und beim nächsten Start per batch, kann Mailstore dadurch nicht in die Datenbanken schreiben.
Darum habe ich folgende simple Batch geschrieben – seit dem läuft der eingerichtete Scheduler (Aufgabenplanung) ohne Probleme.
Hier meine Batch, vllt hilt es jemanden.
rem Promt deaktivieren
@echo off
rem Killt Prozess mit dem Namen “MailStoreHome.exe”
taskkill /IM MailStoreHome.exe /F
rem Wartet 10 Sek. – sicher ist sicher
timeout 10 > NUL
rem Da MailStore nicht richtig beendet wird, bleiben die .lock Files bestehen.
rem Solange diese bestehen, wird der Zugriff auf die jeweiligen Datenbanken gesperrt.
rem Darum werden die “.lock”-Files VOR dem Start gelöscht.
del D:MailstoreData*.lock
rem Wartet 10 Sek.
timeout 10 > NUL
rem Hiermit wird Mailstore gestartet und die neuen Mails abgeholt. Ggf. die ID anpassen.
rem ‘start “”‘ bewirkt, dass ein Prozess gestartet wird und das Skript sofort zum nächsten
rem Punkt springt, andernfalls würde Mailstore ewig im Hintergrund weiterlaufen und nie
rem zum nächsten Punkt übergehen.
start “” “D:MailstoreApplicationMailStoreHome.exe” /portable /c archive –id=”1″
rem Hier die Zeit eintragen, nach der Mailstore wieder beendet werden soll.
rem Bei mir dauert das Abrufen neuer Mails ca. 5 min, um sicher zu gehen, dass das
rem Abholen wirklich beendet wurde, hier großzügig die Zeit erhöhen. z.B. 1h = 3600 sek
timeout 360 > NUL
rem Killt Prozess mit dem Namen “MailStoreHome.exe”
taskkill /IM MailStoreHome.exe /F
rem Löscht erneut die “.lock”-Files. Ordnung muss sein.
del D:MailstoreData*.lock