Business Groupware SOGo unter Ubuntu mit Plesk (ohne LDAP)
SOGo ist ein Groupware Server (unter GPL-Lizenz), wie auch Zarafa, Egroupware, Zimbra, oder das weit verbreitete Open Xchange. Doch leider sind weit verbreiteten GroupWare Server an deren Preis gemessen eher für den größeren Mittelstand respektive große Unternehmen gedacht, während SOGo seinen vollen Funktionsumfang kostenlos zur Verfügung stellt.
Was kann SOGo?
SOGo kann sich mit bestehenden Systemen, wie
- Dovecot, Courier-IMAP, uvm.
- Plesk Onyx
integrieren. Die Benutzerauthentifizierung läuft mittels der Plesk Datenbank, als Server wird auf Dovecot / Courier-Imap zurückgegriffen.
Darüber hinaus bietet SOGo einem jeden User einen CalDav sowie CardDav (Kalender + Kontakte Sync) Userspace.
Installation unter Ubuntu
Leider befindet sich SOGo nicht in den offiziellen Paketquellen. Daher muss unter /etc/apt/sources.list der Eintrag
[code]deb http://inverse.ca/ubuntu lucid main[/code]
eingefügt werden.
Anschließend muss die Fremquelle mithilfe des Signierungsschlüssels noch authentifiziert werden
[code]apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 0x810273C4[/code]
Danach kann SOGo mithilfe von
[code]apt-get install sogo[/code]
installiert werden.
Konfiguration
Unter /home/sogo muss das Konfigurationsskript für SOGo erstellt werden.
Bitte beachten, dass username / password / database mit den entsprechenden Werten für euer System geändert werden muss!
[code]defaults write sogod SOGoTimeZone „Europe/Berlin“
defaults write sogod SOGoMailDomain „http://webmail.mydomain.de/SOgo/“
defaults write sogod SOGoLanguage German
defaults write sogod SOGoAppointmentSendEMailNotifications YES
defaults write sogod SOGoFoldersSendEMailNotifications YES
defaults write sogod SOGoACLsSendEMailNotifications YES
defaults write sogod SOGoCalendarDefaultRoles ‚(„PublicViewer“,“ConfidentialDAndTViewer“)‘
defaults write sogod SOGoUserSources ‚({canAuthenticate = YES; displayName = „SOGo Users“;
id = users; isAddressBook = YES;type = sql; userPasswordAlgorithm = md5;
viewURL = „mysql://username:password@localhost:3306/database/sogo_users“;})‘
defaults write sogod SOGoMailingMechanism smtp
defaults write sogod SOGoSMTPServer localhost
defaults write sogod SOGoIMAPServer imaps://localhost:993
defaults write sogod SOGoMemcachedHost 127.0.0.1
defaults write sogod SOGoEnableEMailAlarms No
defaults write sogod OCSFolderInfoURL „mysql://username:password@localhost:3306/database/sogo_folder_info“
defaults write sogod SOGoProfileURL „mysql://username:password@localhost:3306/database/sogo_user_profile“
defaults write sogod OCSEMailAlarmsFolderURL „mysql://username:password@localhost:3306/database/sogo_alarms_folder“
defaults write sogod OCSSessionsFolderURL „mysql://username:password@localhost:3306/database/sogo_sessions_folder“
defaults write sogod SOGoPageTitle „SOGo WebMailer“
defaults write sogod SOGoMailAuxiliaryUserAccountsEnabled YES
defaults write sogod SOGoFirstDayOfWeek 1
defaults write sogod SOGoMailComposeMessageType html
defaults write sogod SOGoDraftsFolderName „Drafts“
defaults write sogod SOGoSentFolderName „Sent“
defaults write sogod SOGoTrashFolderName „Trash“
[/code]
8 Responses
Und wie ist diese dann aufrufbar ? Über die Webmail funktioniert das leider nicht
in /etc/apache2/sites-available erstellt sogo dazu eine conf, diese am besten auf die eigenen Bedürfnisse anpassen und mittels a2enconf aktivieren.
Super Danke hat geklappt.
Leider verwenden Sogo aber nur die Angelegten User in der SQL Tabelle sogo_users – wie kann ich hier die Plesk User verwenden – also Imap User ?
am besten würde sich hierfür ein script eignen, das die User dementsprechend synchron hält. In Plesk gibts bspw. für Ereignisse die Möglichkeit, ein Skript zu starten – den sogenannten Ereignis-Handler (Benutzer hat E-mail aktualisiert, Benutzer hat E-Mail angelegt, usw).
Bekomme es leider nicht hin. Kannst du die Anleitung nochmal ausführlicher schreiben und für Plesk Onyx anpassen.
Danke!
In solch einem Fall bitte direkt übers Kontaktformular melden, um kostenpflichtigen Support zu erhalten.
Hi,
Ich habe gerade deinen Artikel über SoGo und Plesk gefunden, als ich selber versuchen wollte das ganze für mich und meine Familie aufzusetzen.
Gibt es irgendwelche wichtigen Dinge die beachtet werden müssen für die neuste Plesk Version?
Das Setup das ich versuche auf die Beine zustellen, ist das folgende:
Plesk für Website Management etc. zu nutzen, aber SoGo soll komplett alles E-Mail/Kalender mäßige übernehmen (bisher habe ich https://www.danami.com/ genutzt um Spam besser zufiltern, ist das noch nötig wenn man SoGo benutzt?) und wenn möglich sollte es automatisch wenn man eine neue E-Mail Adressen etc. erstellt alles synchron zu halten.
Kannst du mir da Hinweise geben wie man das am besten hinbekommt ?
(Falls das zu viel gefragtes für kostenfreie Informationen/Anleitungen sind, dann wäre ich auch bereit für deine Expertise zu zahlen)
Hi Sven,
Sogo ist ein Tool um E-Mails Webbasiert oder per ActiveSync usw. darzustellen/bereitstellen. Sogo selber ist kein E-Mail Server! Sogo hat auch keine eigene Spamerkennung – das bleibt in der Konstellation weiterhin bei Plesk. Also weiterhin danami nutzen.
Ja du kannst per script die E-Mail Adressen Syncron halten, das Skript dann als Cronjob einplanen.
Hier ein Skript Beispiel – was jetzt aber auch nicht die schönste Art ist:
<?php
//Get password´s and email
$pw = shell_exec('/usr/local/psa/admin/sbin/mail_auth_view');
//result insert to array and clean up string
$pw = str_replace(array("\r", "\n"), '', $pw);
$pw = str_replace(' ', '', $pw);
$pw = str_replace('Authenticationdatabasecontents:', '', $pw);
$pw = str_replace('+————————————–+—–+————————————–+', '', $pw);
$pwar = explode('|', $pw);
$pwar = array_filter($pwar);
$rem = array_pop($pwar);
for($i=0; $i < 3; $i++){
$rem = array_shift($pwar);
}
//mysql connection data
$servername = "localhost";
$username = "user";
$password = "password";
$database = "sogo";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
//get current user at table
$sqlget = "select * from sogo_users";
$sqlres = mysqli_query($conn, $sqlget);
$toa = mysqli_fetch_array($sqlres);
//create var for update or insert
$countpw = count($pwar);
$indexEmail=0;
$indexPW=1;
$indexupdate = 0;
$update = false;
//while for check if user createt or must be create
while($indexEmail<$countpw){
while($indexupdate<$countpw){
if($toa['mail'] == $pwar[$indexupdate]){
$sqlup = "UPDATE sogo_users SET c_password= md5('".$pwar[$indexPW]."') WHERE mail = '".$pwar[$indexEmail]."'";
mysqli_query($conn, $sqlup);
$indexupdate = $indexupdate + 2;
}
else{
//create user at sogo table
$sql = "INSERT INTO sogo_users SET mail='".$pwar[$indexEmail]."', c_name='".$pwar[$indexEmail]."', c_cn='".$pwar[$indexEmail]."',c_uid = md5('".$pwar[$indexEmail]."'), c_password= md5('".$p$
mysqli_query($conn, $sql);
$indexupdate = $indexupdate + 2;
}
}
//update Var
$indexEmail = $indexEmail + 2;
$indexPW = $indexPW + 2;
//$update = false;
$indexupdate = 0;
}
//close mysql connection
mysqli_close($conn);