Es gibt einige Webmail Clients unter freier Lizenz, wie z.B. Roundcube und SquirrelMail. Allerdings wird man feststellen, das die Auswahl nicht sonderlich groß ist. Ein neuer Stern am Webmail-Himmel ist Mailpile welches unter http://www.mailpile.is/ zu finden ist.
mailpile.is
Mailpile orientiert sich dabei vom Interface her an Google Mail, was man auf den ersten Blick erkennt. Es bietet dabei natürlich Dinge wie eine Suche, verschiedene Importfunktionen, Tag-Support, eine Kontaktverwaltung und soll eine integrierte PGP Verschlüsselung und Signierung enthalten. Dadurch wird das ganze Paket wesentlich interessanter, da eine eingebaute Verschlüsslung, die Anwendung für Jedermann enorm vereinfacht.
Für das Hosting benötigt man einen Pythonstack, so das es sich nicht für das normale LAMP Webhosting Paket eignet (es sei denn das P steht für Python). Das ist schade, da dadurch sicherlich der Kreis der Benutzer eingeschränkt ist. Mailpile ist freie Software und steht unter der AGPL. Der Quelltext ist auf Github zu finden. Im Moment wird auf Indiegogo Geld für die weitere Entwicklung des Clients gesammelt. Wem das Projekt also zusagt, sollte die Brieftasche zücken.
Wer unter der aktuellen Version von ownCloud (5.0.7) versucht das Passwort des angemeldeten Nutzers zu ändern, kann durchaus mit der Meldung:
Class 'OCA\Encryption\Util' not found at /www/htdocs/owncloud/settings/ajax/changepassword.php#31
beglückt werden. Der Fehler tritt immer dann auf wenn die App „Encryption“ nicht aktiv ist und man das Passwort ändern möchte. Um den Fehler zu umgehen gibt es zwei Möglichkeiten. Die erste Möglichkeit ist die Aktivierung der entsprechenden App um anschließend das Passwort zu ändern. Die zweite Möglichkeit ist es den Patch welcher im Bugreportverlinkt ist, in die eigene ownCloud Version zu integrieren. Danach klappt es mit dem Passwortwechsel.
Seit einiger Zeit möchte ich gerne von Diensten wie Google Mail und Co. wegkommen. Dazu tragen mittlerweile auch die Enthüllungen aller PRISM und Tempora bei. Ein Feature welches sich bei Google Mail als sehr praktisch erwiesen hat, ist das Einsammeln von der Mails anderer Mailkonten. Nun ist es nicht so das es sich bei diesem Feature um Magie handelt, so das es Nahe lag das ganze in PHP nachzubauen:
<?php
//Licensed under AGPL
//by seeseekey
//Configuration
//Accounts to collect
$collectAccounts[""]["server"]="{mail.example.org/novalidate-cert}INBOX";
$collectAccounts[""]["username"]="user";
$collectAccounts[""]["passwort"]="secret";
$collectAccounts[""]["server"]="{mail.example.org/novalidate-cert}INBOX";
$collectAccounts[""]["username"]="user";
$collectAccounts[""]["passwort"]="secret";
//Target server
$targetServer = "{mail.example.org/ssl/novalidate-cert}";
$targetUsername = "user";
$targetPassword = "secret";
//Operate
$mboxTarget = imap_open($targetServer, $targetUsername, $targetPassword) or die ("Failed with error: " . imap_last_error());
//Quellpostfächer öffnen
while (list($key,$value) = each($collectAccounts))
{
$mboxSource = imap_open($value["server"], $value["username"], $value["passwort"]) or die ("Failed with error: ".imap_last_error());
$mailboxInformation = imap_check($mboxSource);
$overviewSourceMailBox = imap_fetch_overview($mboxSource, "1:{$mailboxInformation->Nmsgs}", 0);
//Create folder
imap_createmailbox($mboxTarget, imap_utf7_encode("$targetServer$key"));
foreach ($overviewSourceMailBox as $overview)
{
$message = imap_fetchheader($mboxSource, $overview->msgno) . imap_body($mboxSource, $overview->msgno);
if(!imap_append($mboxTarget, mb_convert_encoding("$targetServer$key" . "" . "", "UTF7-IMAP", "ISO-8859-1"), $message,""))
{
die ("Error: ". imap_last_error());
}
//Mark mail from source mailbox as deleted
imap_delete($mboxSource, $overview->msgno);
}
//Delete all marked mails and close connection to source mailbox
imap_expunge($mboxSource);
imap_close($mboxSource);
}
imap_close($mboxTarget);
?>
In dem Skript gibt man dabei oben die Konten an von welchen eingesammelt werden soll. Daneben wird natürlich auch das Zielkonto definiert. Der erste Parameter von „$collectAccounts“ definiert dabei den Ordner in welchen die Mails im Zielkonto geschoben werden. Der Quellcode ist auf GitHub zu finden und steht unter der AGPL.
Die freie Software ownCloud hat mittlerweile die Version 5.0.7 erreicht. Im Standardumfang gibt es dabei eine Lösung um Dateien zu synchronisieren, ein Adressbuch, einen Kalender, eine Aufgabenverwaltung und Funktionen für Musik und Bilder. Allerdings fehlen noch einige Dinge für den täglichen Bedarf. Dabei stellt sich natürlich die Frage welche dies sind. Aus meiner Sicht sollte ownCloud folgendes beherrschen:
Aufgaben
Kalender
Synchronisation
Mail
News Reader
Notizen
Einige der aufgezählten Anwendungen lassen sich dabei über das App Repository einspielen. Apps wie der News Reader und die Lesenzeichenverwaltung werden dabei mitgeliefert und müssen nur noch installiert werden. Viel interessanter ist es allerdings sich das ownCloud Repository auf GitHub anzuschauen. Dort finden sich unter anderem Apps für Notizen („Notes“) und Mail („Mail“), welche augenscheinlich offiziell unterstützt werden, was zu mindestens in der Zukunft das Paket abrunden sollte.
Daneben gibt es in der aktuellen Version die (wiedereingeführte) Möglichkeit die Dateien auf dem Server zu verschlüsseln. Allerdings befindet sich diese Funktion noch in der Testphase so das man hier besondere Vorsicht walten lassen sollte. Natürlich ist das meine Vorstellung davon, was man benötigt um eine vollwertige Lösung sein eigen zu nennen. Deshalb die Frage: Wofür nutzt ihr ownCloud und welche Dienste und Funktionen vermisst ihr?
Über das Wochenende hatte ich einige GPS getagte Bilder geschossen und wollte diese auf einer Karte darstellen. Eine kurze Suche im Netz ergab, das so etwas in dieser Form nicht existierte (wobei hier natürlich ein Irrtum vorliegen kann). Also wurde das ganze auf Basis von Leaflet implementiert.
Die Webapplikation in Aktion
Leaflet ist ein Framework mit welchem man schnell Kartenapplikationen im Web realisieren kann. Um den „Gps Tagged Image Viewer“ zu benutzen, müssen die Dateien auf einem Webserver kopiert werden. Die Bilder werden dabei in den Ordner „images“ kopiert. Anschließend wird das PHP Skript „parseimages.php“ aus dem „utils“ Ordner ausgeführt. Dieses ließt die EXIF Daten aus den Bildern aus und erzeugt die entsprechenden Marker in einer Javascript Datei. Danach kann das ganze genutzt werden.
Die Karte ist dabei mit drei Kartenebenen versehen, einmal Bing Luftbilder (für welche ein API-Key registriert werden muss), sowie OpenStreetMap in zwei unterschiedlichen Renderings. Der Quelltext ist unter GPLv3 verfügbar und kann auf GitHub bezogen werden.