Business Groupware SOGo unter Ubuntu mit Plesk (ohne LDAP)

[E-Commerce] IT-Consulting and Development in Mühldorf am Inn

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

  1. Johannes sagt:

    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.

      • Johannes sagt:

        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).

  2. p3rf3ct10n sagt:

    Bekomme es leider nicht hin. Kannst du die Anleitung nochmal ausführlicher schreiben und für Plesk Onyx anpassen.
    Danke!

  3. Sven sagt:

    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)

    • Johannes sagt:

      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);

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.