auf Facebook teilen auf Google+ teilen auf LinkedIn teilen auf Pinterest teilen twittern
Werbehinweise
» Startseite » Software » multi-platform » Mozilla Thunderbird Profil sharen 

Mozilla Thunderbird – ein Profil mit WIN32 und Linux sharen

Einleitung

Es ist wegen einiger Einträge in der prefs.js und user.js nicht möglich, einfach das gleiche Profilverzeichnis zu nutzen. Daher habe ich unter dem jeweiligen Betriebssystem Thunderbird mit dem Schalter »-p« gestartet und mir gezielt Profilverzeichnisse angelegt.

Da meine Profile generell auf einem Server mit Raid 1 liegen und ich diese Datensicherheit natürlich auch für meine Thunderbird-Dateien haben wollte, sieht meine Konfiguration etwas anders aus als die eines Multi-OS-PCs. Dennoch lassen sich viele Angaben übertragen.

Bitte bei den einzelnen Schritten beachten wo ich Risiken bei meiner Lösung entdeckt habe - und dass diese Risiken bei einem einzelnen PC eventuell nicht auftreten können. Mehr dazu später.

Wichtig: Bevor irgendwelche Dateien gelöscht, verändert oder verschoben werden, sollte auf jeden Fall eine Komplettsicherung des Profilverzeichnisses erfolgen. Einfach den kompletten Profilordner als .zip oder anderes Archiv sichern und/oder auf CD brennen. Sicher ist sicher!

1. Mails sharen

Damit ich die jeweiligen Profilverzeichnisse gut sichern kann und die von beiden Betriebssystemen genutzten Daten in einem extra Verzeichnis liegen, habe ich eine andere Lösung gewählt als sie meistens propagiert wird.

Alle Dateien, welche von beiden Betriebssystemen genutzt werden, liegen in einem extra Verzeichnis ausserhalb des normalen Profilverzeichnisses.

Eine Übersicht der Verzeichnisse meiner Lösung:

/home/data/thunderbird = Basisverzeichnis für alles
/home/data/thunderbird/win32 = Profilverzeichnis WIN32
/home/data/thunderbird/linux = Profilverzeichnis Linux
/home/data/thunderbird/shared = von beiden OS genutzte Dateien

Die Mails werden Standardmässig in einem Verzeichnis »Mail« im Profil gespeichert. Dieses Verzeichnis wurde im /shared-Verzeichnis angelegt und anschliessend wurden Symlinks in den beiden Profilverzeichnissen angelegt:

ln -s /home/data/thunderbird/shared/Mail /home/data/thunderbird/win32/.
ln -s /home/data/thunderbird/shared/Mail /home/data/thunderbird/linux/.

Hinweis: Wer auf seinem Multi-OS-PC die Dateien sharen will, wird die Daten auf einer FAT32 Partition speichern und anschliessend im - -/.thunderbird unter Linux mit Symlinks arbeiten. Das Prinzip ist das Gleiche, meine Variante ist nur möglich, wenn ein Server mit Linux aufgesetzt wurde.

Es gibt im Falle eines Multi-OS-PCs kein extra Verzeichnis für von beiden Betriebssystemen genutzte Dateien/Verzeichnisse, da dies von FAT32 bzw. Windows ansich nicht unterstützt wird (Symlinks).

Werden von einem Thunderbird die Verzeichnisse angelegt, so werden beim Konfigurieren des anderen Thunderbird die gleichen Verzeichnissnamen verwendet - und um »-1« ergänzt. Daher ist es notwendig, die Pfadangaben entsprechend zu korrigieren. Ein Beispiel von Windows aus:

U:\thunderbird\win32\Mail\pop.freenet.de

statt

U:\thunderbird\win32\Mail\pop.freenet.de-1

Entsprechend unter Linux:

/home/data/thunderbird/linux/Mail/pop.freenet.de

Werden die einzelnen Konten nacheinander angelegt, so sind die neu erstellten Verzeichnisse mit dem »-1«-Präfix nach dem Ändern der Angaben im Profil einfach zu löschen.

Wichtig: Die Konten sind in beiden Profilen in der gleichen Reihenfolge anzulegen. Der Grund dafür: Wird eine E-Mail im einen Thunderbird mit der dritten E-Mailadresse bearbeitet und anschliessend im anderen Thunderbird daran weitergeschrieben und versendet, wird eine andere Absendeadresse verwendet wenn die dritte E-Mailadresse bei der anderen Installation von der ursprünglichen abweicht.

Ein Beispiel damit es deutlicher wird:

Thunderbird unter Linux:

1. Account foo@bar
2. Account bar@bar
3. Account foo@foo
4. Account jane@doe

Thunderbird unter Windows:

1. Account foo@bar
2. Account bar@bar
3. Account jane@doe
4. Account foo@foo

Wird nun eine E-Mail unter Linux empfangen und als Entwurf gespeichert, so soll die Absenderadresse »foo@foo« sein. Wird der Entwurf unter Windows geöffnet und dann verschickt, ist die Absendeadresse auf einmal »jane@doe« (fett hervorgehoben).

Für Bastler: Sind bereits bei beiden Profilen viele Mailfächer angegeben, so kann auch die prefs.js vom einen Profil in das andere teilweise übernommen werden.

Es müssen drei Blöcke kopiert und teilweise editiert werden. Zunächst die Postfächer:

Die prefs.js mit einem Texteditor öffnen und nach »mail.identity.id1« suchen lassen. Bei der ersten Zeile mit einem Treffer beginnt der Block mit den Angaben der Postfächer.

In meinem Fall musste ich pro Account zwei Zeilen korrigieren:

Linux:

user_pref("mail.identity.id1.sig_file", "/home/turanga/.signature");
user_pref("mail.identity.id1.sig_file-rel",
"[ProfD]../../../turanga/.signature");

Win32:

user_pref("mail.identity.id1.sig_file", "U:\thunderbird\.signature");
user_pref("mail.identity.id1.sig_file-rel", "[ProfD]../.signature");

Mittels suchen und ersetzen können solche Blöcke schnell und einfach getauscht werden.

Anschliessend muss der zweite Block gefunden werden: Einfach nach »mail.server.server1« suchen lassen.

Linux:

user_pref("mail.server.server1.directory",
"/home/data/thunderbird/linux/Mail/Local Folders");

user_pref("mail.server.server2.directory",
"/home/data/thunderbird/linux/Mail/pop.gmx.net");

Windows:

user_pref("mail.server.server1.directory",
"U:\thunderbird\win32\Mail\Local Folders");

user_pref("mail.server.server2.directory",
"U:\thunderbird\1.5\Mail\pop.gmx.net");

Auch hier wieder: Mittels suchen und ersetzen können solche Blöcke schnell und einfach getauscht werden.

Weiterhin sind die Angaben der SMTP-Server auch noch zu kopieren, was den dritten und letzten Block darstellt:

Nach »mail.smtpserver.smtp1« suchen lassen und die Zeilen aus dem relevanten Block von der einen prefs.js in die andere übernehmen. Da keine Pfadangaben vorhanden sind, müssen keine Veränderungen vorgenommen werden.

Nachdem die Änderungen vorgenommen wurden sind die Passwörter, welche eventuell bereits gespeichert wurden, natürlich auch nicht mehr korrekt. Daher müssen sie neu eingegeben werden.

2. Weitere Daten sharen

Es gibt noch weitere Dateien, welche von beiden Thunderbird-Versionen genutzt werden können und sollen. Dazu gehören die Adressbuch-Dateien »history.mab« und »abook.mab« sowie eine eventuell angelegte user.js mit eigenen Ergänzungen, beispielsweise einer angepassten Zitatzeile.

Auch diese Dateien wurden von mir zunächst nach

/home/data/thunderbird/shared/

verschoben und anschliessend in den beiden Profilverzeichnissen per Symlinks wieder eingebunden:

ln -s /home/data/thunderbird/shared/user.js /home/data/thunderbird/win32/.
ln -s /home/data/thunderbird/shared/abook.mab /home/data/thunderbird/win32/.
ln -s /home/data/thunderbird/shared/history.mab
/home/data/thunderbird/win32/.
ln -s /home/data/thunderbird/shared/user.js /home/data/thunderbird/linux/.
ln -s /home/data/thunderbird/shared/abook.mab /home/data/thunderbird/linux/.
ln -s /home/data/thunderbird/shared/history.mab
/home/data/thunderbird/linux/.

 

3. Zusätzliche Adressbücher sharen

Bei den Adressbüchern greift das Gleiche wie auch schon bei den Konten für E-Mails: Die von beiden Betriebssystemen genutzten Daten wurden von mir in ein extra Verzeichnis verschoben.

Legt man neue Adressbücher zu den bereits vorhandenen an, so werden diese inkrementell mit abook-n.mab benannt.

Ich habe zwei zusätzliche Adressbücher angelegt gehabt, demnach hatte ich zu dem standardmässig vorhandenen abook.mab noch ein abook-1.mab und ein abook-2.mab.

Gleiches Spiel wie beim zweiten Schritt: Dateien unter einem Profil anlegen und anschliessend nach

/home/data/thunderbird/shared/

verschieben.

Bevor sie nun per Symlink in die jeweiligen Profile eingebunden werden allerdings noch ein Zwischenschritt:

Damit in der »prefs.js« die entsprechenden Einträge für die zusätzlichen Adressbücher vorhanden sind: Diese in gleicher Reihenfolge erzeugen. Danach im Profilverzeichnis löschen und durch die Symlinks ersetzen.

ln -s /home/data/thunderbird/shared/abook-1.mab
/home/data/thunderbird/win32/.
ln -s /home/data/thunderbird/shared/abook-2.mab
/home/data/thunderbird/win32/.

ln -s /home/data/thunderbird/shared/abook-1.mab
/home/data/thunderbird/linux/.
ln -s /home/data/thunderbird/shared/abook-2.mab
/home/data/thunderbird/linux/.

Alternativ können natürlich auch aus dem einen Profil die relevanten Daten aus der »prefs.js« herauskopiert und im anderen Profil eingefügt werden. Jedoch birgt dies eine gewisse Fehleranfälligkeit wenn man nicht sorgfältig genug arbeitet. Ausserdem sind manche User mit solchen Textkopierereien schlechter beraten als mit dem Anlegen von Adressbüchern in einem Programm und dem Löschen von nicht mehr benötigten Dateien.

4. Trainierten Spamfilter sharen

Wurde der Spamfilter schon ausgiebig traininert, sollte er natürlich auch unter beiden Betriebssystemen zur Verfügung stehen. Auch hier wieder der gewohnte Ablauf:

Die training.dat nach

/home/data/thunderbird/shared/

verschieben und anschliessend mit Symlinks in die Profilverzeichnisse einbinden:

ln -s /home/data/thunderbird/shared/training.dat
/home/data/thunderbird/win32/.
ln -s /home/data/thunderbird/shared/training.dat
/home/data/thunderbird/linux/.

Nun kann der Spamfilter von beiden Thunderbird-Varianten aus traininert und natürlich auch abgefragt werden.

5. Dynamische Signatur sharen

Ich war es von Sylpheed-Claws aus gewöhnt, mir über eine Kommandozeileneingabe eine dynamische Signatur generieren lassen zu können. Leider bietet Thunderbird keine solche Lösung, lediglich andere Tools, welche aus einer kleinen Datenbank bzw. Textdatei Signaturen herausziehen.

Ich wollte jedoch wieder die fortunes nutzen. Daher habe ich mir ein kleines Script geschrieben:

#/bin/bash
FORTUNE=`/usr/games/fortune -v`
echo -e " $FORTUNE says:\n" > ~/.signature
/usr/games/fortune >> ~/.signature
echo -e "\n Get my GPG key here:" >> ~/.signature
echo -e " gpg --keyserver blackhole.pca.dfn.de --recv-keys F4622F1C"
>> ~/.signature

# .signature von UTF-8 zum Windows-Zeichensatz konvertieren
iconv -f UTF-8 -t WINDOWS-1252 ~/.signature >
/home/data/thunderbird/.signature

Funktion des Scripts: Es greift auf das Programm "fortune" zurück, holt sich von dort eine Signatur und schreibt diese zusammen mit weiteren Informationen in eine Datei ".signature", welche ich in das ~/. des Benutzers schreiben lasse.

Von dort aus wird es aus dem UTF-8 Format übernommen und in den Windows-Zeichensatz konvertiert. Ansonsten wären mit der Windows-Version des Thunderbird keine Sonderzeichen (Umlaute, etc.) möglich. Die konvertierte Signatur wird in das Verzeichnis /home/data/thunderbird/ kopiert.

Während der Linux-Thunderbird ganz klassisch auf /home/turanga/.signature zurückgreift, verwendet der Windows-Thunderbird die auf der SMB-Share liegende, konvertierte Signatur.

Über einen Eintrag in /etc/crontab wird das Script minütlich aufgerufen und schreibt eine neue .signature:

1-59/1 * * * * turanga /home/turanga/tinyscripts/thunderbird-autosig

 

6. Probleme bei meiner Lösung über ein SMB-Share bzw. Workaround

Thunderbird nutzt - wie auch Firefox - eine Datei um die Benutzung des Profils anzuzeigen bzw. das Profil vor einem weiteren Zugriff zu schützen. Es wird eine Datei mit dem Namen »parent.lock« im Profilverzeichnis angelegt.

Da für die beiden Thunderbird-Varianten unterschiedliche Profilverzeichnisse angelegt werden, kann der startende Thunderbird nicht feststellen, ob die von beiden Versionen aus genutzten Daten bereits im Zugriff sind oder nicht.

Da die Datei »parent.lock« beim Beenden des Thunderbird gelöscht wird, kann auch kein Symlink gesetzt werden. Somit muss ich mir sicher sein, dass ich nicht von dem anderen Rechner mit dem anderen Betriebssystem gerade auf die Dateien zugreife.

Bei einer Multi-OS-PC-Lösung tritt dieses Problem nicht auf, da ja nur ein Betriebssystem läuft und auf die Daten zugreifen kann.

Daher werden bei mir die Clients mit Scripten gestartet und nicht über den üblichen Programmaufruf.

Zunächst die Batch für Win32:

 @echo off : prüfen ob von WIN32 aus das Profil genutzt wird if exist ../1.5/parent.lock ( echo Profil wird bereits unter WIN32 verwendet! echo. pause ) : prüfen ob von Linux aus das Profil genutzt wird if exist ../linux/lock ( echo Profil wird bereits unter Linux verwendet! echo. pause ) ELSE ( : Wechsel in das Verzeichnis muss zuerst erfolgen, sonst gibt : Windows eine Fehlermeldung aus - wegen der doppelten : Verwendung der "" cd "D:\Programme\mozilla thunderbird\" start thunderbird.exe -P"1.5" ) : wird in beiden Verzeichnissen keine »lock« gefunden, wird : das benannte Profil direkt gestartet 

Mit einem Linuxscript habe ich leider noch nicht angefangen – das Onlinestellen dieser noch unfertigen Anleitung kam dazwischen...

To be continued...


 
 
Das Generieren dieser Seite dauerte genau 0.05265 Sekunden.