Sogo

From SME Server
Jump to navigation Jump to search

Is this article helpful to you?
Please consider donating or volunteering
Thank you!

SOGo - Scaleable OpenGroupware.org

http://www.sogo.nu

SOGo is a groupware server built around OpenGroupware.org (OGo) and the SOPE application server. It focuses on scalability.

SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV.

Once configured, SOGo offers multiple ways to access the calendaring and messaging data. Your users can either use a web browser, Mozilla Thunderbird, Apple iCal, or a mobile device to access the same information. SOGo provides native Microsoft ActiveSync support. Mobile devices such as Apple iPhone, Android, Windows Phone, and BlackBerry 10 can fully synchronize emails, contacts, events and tasks with SOGo.

Maintainer

Stéphane de Labrusse AKA Stephdl

The original work has been made by nethesis. Many thanks to all previous developers

Requirements

SOGo requires SME 8 or SME 9

Install SOGO 2

For SME 8

  Note:
due to the version of dovecot, I cannot maintain sogo for sme8, please upgrade to sme9


You need to activate Stephdl, epel and sogo repository

db yum_repositories set stephdl repository \
    BaseURL http://mirror.de-labrusse.fr/smeserver/\$releasever \
    EnableGroups no \
    GPGCheck yes \
    Name "Mirror de Labrusse" \
    GPGKey http://mirror.de-labrusse.fr/RPM-GPG-KEY \
    Visible yes \
    status disabled
 
db yum_repositories set sogo repository \
    BaseURL http://inverse.ca/downloads/SOGo/RHEL5/\$basearch \
    EnableGroups yes \
    GPGCheck no \
    Name "Inverse SOGo Repository" \
    IncludePkgs gnustep-base,gnustep-make,libmemcached,libwbxml,sogo*,sope49* \
    Visible yes \
    status disabled

db yum_repositories set epel repository \
    Name 'Epel - EL5' \
    BaseUrl 'http://download.fedoraproject.org/pub/epel/5/$basearch' \
    MirrorList 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch' \
    EnableGroups no \
    GPGCheck yes \
    GPGKey http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL \
    Visible no \
    status disabled
signal-event yum-modify


  Warning:
due to the limitation of dovecot 1.0 in SME server 8.0, you cannot use sogo (superior of 2.0 version) without bugs. If it is absolutely needed (eg : you should use SME9) you can install smeserver-dovecot from firewall-services : https://wikit.firewall-services.com/doku.php/smedev/dovecot


This contrib is currently held in several repositories, so the following commands will install it on your smeserver. For SME 8 , You need to activate Stephdl, epel and sogo repository

yum --enablerepo=stephdl,epel,sogo install smeserver-sogo

You will then need to activate the database changes etc. The 'official' way is to perform

signal-event post-upgrade;  signal-event reboot

or if you don't want to reboot your server

signal-event sogo-modify; config set UnsavedChanges no

For SME 9

You need to activate Stephdl, epel and sogo repository

db yum_repositories set stephdl repository \
    BaseURL http://mirror.de-labrusse.fr/smeserver/\$releasever \
    EnableGroups no \
    GPGCheck yes \
    Name "Mirror de Labrusse" \
    GPGKey http://mirror.de-labrusse.fr/RPM-GPG-KEY \
    Visible yes \
    status disabled

db yum_repositories set sogo repository \
    BaseURL http://inverse.ca/downloads/SOGo/RHEL6/\$basearch \
    EnableGroups yes \
    GPGCheck no \
    Name "Inverse SOGo Repository" \
    IncludePkgs gnustep-base,gnustep-make,libmemcached,libwbxml,sogo*,sope49* \
    Visible yes \
    status disabled

db yum_repositories set epel repository \
   Name 'Epel - EL6' \
   BaseUrl 'http://download.fedoraproject.org/pub/epel/6/$basearch' \
   MirrorList 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch' \
   EnableGroups no \
   GPGCheck yes \
   GPGKey http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL \
   Visible no \
   status disabled

signal-event yum-modify

This contrib is currently held in several repositories, so the following commands will install it on your smeserver. For SME 9 , You need to activate Stephdl, epel, fws and sogo repository

yum --enablerepo=stephdl,epel,sogo,fws install smeserver-sogo

You will then need to activate the database changes etc. The 'official' way is to perform

signal-event post-upgrade;  signal-event reboot

or if you don't want to reboot your server

signal-event sogo-modify; config set UnsavedChanges no

Install SOGO 3 (ONLY SME9)

  Note:
Sogo 3 is really new, some features are missing or with bugs


First installation

db yum_repositories set stephdl repository \
   BaseURL http://mirror.de-labrusse.fr/smeserver/\$releasever \
   EnableGroups no \
   GPGCheck yes \
   Name "Mirror de Labrusse" \
   GPGKey http://mirror.de-labrusse.fr/RPM-GPG-KEY \
   Visible yes \
   status disabled

db yum_repositories set sogo3 repository \
  BaseURL http://inverse.ca/rhel-v3/6/\$basearch \
  EnableGroups yes \
  GPGCheck no \
  Name "Inverse SOGo Repository" \
  IncludePkgs gnustep-base,gnustep-make,libmemcached,libwbxml,sogo*,sope49* \
  Visible yes \
  status disabled

db yum_repositories set epel repository \
  Name 'Epel - EL6' \
  BaseUrl 'http://download.fedoraproject.org/pub/epel/6/$basearch' \
  MirrorList 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch' \
  EnableGroups no \
  GPGCheck yes \
  GPGKey http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL \
  Visible no \
  status disabled

signal-event yum-modify

This contrib is currently held in several repositories, so the following commands will install it on your smeserver. For SME 9 , You need to activate Stephdl, epel, fws and sogo3 repository

yum --enablerepo=stephdl,epel,sogo3,fws install smeserver-sogo

You will then need to activate the database changes etc. The 'official' way is to perform

signal-event post-upgrade;  signal-event reboot

or if you don't want to reboot your server

signal-event sogo-modify; config set UnsavedChanges no

Upgrade from sogo2

db yum_repositories set sogo3 repository \
  BaseURL http://inverse.ca/rhel-v3/6/\$basearch \
  EnableGroups yes \
  GPGCheck no \
  Name "Inverse SOGo Repository" \
  IncludePkgs gnustep-base,gnustep-make,libmemcached,libwbxml,sogo*,sope49* \
  Visible yes \
  status disabled

signal-event yum-modify
yum update  --enablerepo=sogo3
yum reinstall sope\* --enablerepo=sogo3

You will then need to activate the database changes etc. The 'official' way is to perform

signal-event post-upgrade;  signal-event reboot

or if you don't want to reboot your server

signal-event sogo-modify; config set UnsavedChanges no

Usage

To access webmail and calenders, open the url http://yourdomain.net/SOGo

If you disable webmail access from within SmeServer email panel, opening http://yourdomain.net/webmail you'll be redirected to SOGo.

Sieve integration (SME 9)

Installing SOGo on SME 9 according to the instructions above also installs smeserver-dovecot-extras as a dependency. In order to make full use of sieve functionality in SOGo (such as auto expiration of vacation messages), make sure that the following property is enabled in the configuration database:

db configuration setprop dovecot AdminIsMaster enabled

signal-event email-update

Special Settings (SME 9)

Sogo is full of settings that I cannot provide all, please read the sogo's book

Now when you want to add a specific option, 'SOGoMailComposeMessageType html' per example

vim /etc/e-smith/templates/etc/sogo/sogo.conf/20MYOPTIONS

Add you modifications (contrary is 'text')

SOGoMailComposeMessageType = html;

Expand and restart sogo

signal-event sogo-modify

If you want to go back, then

rm -f /etc/e-smith/templates/etc/sogo/sogo.conf/20MYOPTIONS
signal-event sogo-modify

Log

All events are logged in the relevant log file

less /var/log/sogo/sogo.log

Documentation

Please RTFM instead of raising bugs against smeserver-sogo :)

You have more documentation available here on all SOGo's aspects


You can fine tune thunderbird to be a pure "heavy" client for SOGo. See the Documentation

Thunderbird Configuration

You are encouraged to use Thunderbird ESR (Extended Support Release) and corresponding compatible Lightning plugin. According to Mozilla Team "Thunderbird Extended Support Release (ESR) is intended for groups who deploy and maintain the desktop environment in large organizations such as universities and other schools, county or city governments and businesses". Furthermore the latest releases of Lightning plugin is fully SOGo compatibile, so no more need of a SOGo customized version.

1.) From a Windows client create the folder "SOGo-plugins\WINNT_x86-msvc" in your Primary ibay "html" folder (e.g. \\<SME server name>\Primary\hmtl\SOGo-plugins\WINNT_x86-msvc)

2.) Download the latest Lightning, Connector and Integrator plugins from [1] and place them in the "WINNT_x86-msvc" folder.

3.) Rename "sogo-integrator-<version>-sogo-demo.xpi" to "sogo-integrator-<version>-sogo.xpi". (This is optional)

4.) Open the "sogo-integrator-<version>-sogo.xpi" file with your favorite zip program (it is just a renamed zip file. 7-zip works nicely for this) and edit the file "\chrome\content\sogo-integrator\extensions.rdf".

Change the following lines:

       <Seq about="http://inverse.ca/sogo-integrator/extensions"
          isi:updateURL="http://sogo-demo.inverse.ca/plugins/updates.php?plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%">
          <li>
            <Description
              em:id="sogo-integrator@inverse.ca"
              em:name="SOGo Integrator"/>
          </li>
          <li>
            <Description
              em:id="sogo-connector@inverse.ca"
              em:name="SOGo Connector"/>
          </li>
        </Seq>

To read: (change the server address to your server and add the Lightning plugin to the extensions list): (Then save the "extensions.rdf" back to the same place in the "sogo-integrator-<version>-sogo.xpi" file and then save the .xpi file back on the server in the "\\<SME server name>\Primary\hmtl\SOGo-plugins\WINNT_x86-msvc" folder.)

       <Seq about="http://inverse.ca/sogo-integrator/extensions"
          isi:updateURL="https://<sme server name.domain>/SOGo-plugins/updates.php?plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%">
          <li>
            <Description
              em:id="sogo-integrator@inverse.ca"
              em:name="SOGo Integrator"/>
          </li>
          <li>
            <Description
              em:id="sogo-connector@inverse.ca"
              em:name="SOGo Connector"/>
          </li>
          <li>
	      <Description
		em:id="{e2fda1a4-762b-4020-b5ad-a41df1933103}"
		em:name="Lightning"/>
          </li>
        </Seq>

5.) Create the file "updates.php" in the "SOGo-plugins" folder

6.) Add the following lines to the file: (Please note you must customize the "version =>", "filename =>" and "<em:updateLink>http://<sme server name.domain>/SOGo-plugins/<?php echo $plugin["filename"] ?></em:updateLink>" in the lines below!)

    <?php
     /* updates.php - this file is part of SOGo
      *
      *  Copyright (C) 2006-2009 Inverse inc.
      *
      * Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
      *
      * This file is free software; you can redistribute it and/or modify
      * it under the terms of the GNU General Public License as published by
      * the Free Software Foundation; either version 2, or (at your option)
      * any later version.
      *
      * This file is distributed in the hope that it will be useful,
      * but WITHOUT ANY WARRANTY; without even the implied warranty of
      * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      * GNU General Public License for more details.
      *
      * You should have received a copy of the GNU General Public License
      * along with this program; see the file COPYING.  If not, write to
      * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
      * Boston, MA 02111-1307, USA.
      */
     
     /* This script handles the automatic propagation of extensions pertaining to a
        SOGo site. It requires PHP 4.1.0 or later. */
     $plugins
     = array( "sogo-connector@inverse.ca"
              => array( "application" => "thunderbird",
                        "version" => "0.99",
                        "filename" => "sogo-connector-0.99.xpi" ),
              "sogo-integrator@inverse.ca"
              => array( "application" => "thunderbird",
                        "version" => "0.99",
                        "filename" => "sogo-integrator-0.99-sogo.xpi" ),
              "{e2fda1a4-762b-4020-b5ad-a41df1933103}"
              => array( "application" => "thunderbird",
                        "version" => "0.9.9",
                        "filename" => "lightning-0.9.9-inverse.win32.xpi" ));
     
     $applications
     = array( "thunderbird" => "<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
                     <em:minVersion>1.5</em:minVersion>
                     <em:maxVersion>2.0.*</em:maxVersion>",
              "firefox" => "<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
                        <em:minVersion>1.5</em:minVersion>
                        <em:maxVersion>2.0.*</em:maxVersion>" );
     
     $pluginname = $_GET["plugin"];
     $plugin =& $plugins[$pluginname];
     $application =& $applications[$plugin["application"]];
     
     if ( $plugin ) {
       $platform = $_GET["platform"];
       if ( $platform
            && file_exists( $platform . "/" . $plugin["filename"] ) ) {
         $plugin["filename"] = $platform . "/" . $plugin["filename"];
       }
       elseif ( !file_exists( $plugin["filename"] ) ) {
         $plugin = false;
       }
     }
     if ( $plugin ) {
       header("Content-type: text/xml; charset=utf-8");
       echo ('<?xml version="1.0"?>' . "\n");
     ?>
     <!DOCTYPE RDF>
     <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
       xmlns:em="http://www.mozilla.org/2004/em-rdf#">
       <Description about="urn:mozilla:extension:<?php echo $pluginname ?>">
         <em:updates>
           <Seq>
             <li>
               <Description>
                 <em:version><?php echo $plugin["version"] ?></em:version>
                 <em:targetApplication>
                   <Description><?php echo $applications[$plugin["application"]] ?>
                     <em:updateLink>https://<sme server name.domain>/SOGo-plugins/<?php echo $plugin["filename"] ?></em:updateLink>
                   </Description>
                 </em:targetApplication>
               </Description>
             </li>
           </Seq>
         </em:updates>
       </Description>
     </RDF>
     <?php
     } else {
       header("Content-type: text/plain; charset=utf-8", true, 404);
       echo( 'Plugin not found' );
     }
     ?>

(You will have to update this file everytime you update the plugins.)

7.) Install the Thunderbird ESR and configure it to use the SME IMAP email.

8.) Install the "sogo-integrator-<version>-sogo.xpi" plugin you modified, into Thunderbird and restart Thunderbird. Sogo will then go to the server and install the other plugins as configured in your "updates.php" file. As default the SOGo-Thunderbird components will associate Calendar and Addressbook to the Sme user/account corresponding to default Thunderbird Imap mail account; so take care to set the desired Imap account as default in Thunderbird before installing plugins.


Now you can create and share address books and calendars in Thunderbird with other SME users and control access rights to them. Your calendars and address books will also sync with the SOGO webmail page as well as any other computers where you have the SOGO Integrator plugin installed.

To configure other devices refer to website; look however at SOGo official up-to-date front-end software and documentation with latest upgrades for server, client and device configuration (http://www.sogo.nu/downloads/frontends.html - http://www.sogo.nu/downloads/documentation.html).

Mixed warnings

You can experience some problem with IMAP authentication: you can login to SOGo but you can't see mail messages; only admin can see his mail. Looking at sogo log you can find erros like this:

Aug 15 21:41:04 sogod [19261]: [ERROR] <0x0xba13edec[NGImap4ConnectionManager]> IMAP4 login failed:
 host=localhost, user=xxxxxx, pwd=yes
 url=imap://xxxxxx@localhost/
 base=(null)
 base-class=(null))
 = <0x0xba14cdec[NGImap4Client]: login=xxxxxx(pwd) socket=<NGActiveSocket[0x0xba14d194]: mode=rw address=<0x0xba14d1d4[NGInternetSocketAddress]: host=localhost port=35161>  connectedTo=<0x0xba14cebc[NGInternetSocketAddress]: host=localhost port=143>>>
Aug 15 21:41:04 sogod [19261]: [ERROR] <0xBA13C964[SOGoMailAccount]:0> Could not connect IMAP4
xxx.xxx.xxx.xxx - - [15/Aug/2014:21:41:04 GMT] "POST /SOGo/so/xxxxxx/Mail/0/mailboxes HTTP/1.1" 200 17/0 0.018 - - 252K
xxx.xxx.xxx.xxx - - [15/Aug/2014:21:41:04 GMT] "POST /SOGo/so/xxxxxx/Mail/1/mailboxes HTTP/1.1" 200 343/0 0.243 - - 24K
xxx.xxx.xxx.xxx - - [15/Aug/2014:21:41:05 GMT] "POST /SOGo/so/xxxxxx/Mail/1/folderINBOX/unseenCount HTTP/1.1" 200 13/0 0.263 - - 48K

This seems related to users not belonging to a group; so be careful that all of your users belong to a group before using SOGo. For existing users:

Create a group
Reset the users password
Add user to the group

More details can be found in this post:

http://forums.contribs.org/index.php/topic,51038.0.html

Reference

http://smeserver.nethesis.it/sogo/

http://www.sogo.nu/english/support/documentation.html


Upgrade

yum --enablerepo=stephdl,epel,sogo update smeserver-sogo sogo\* libmemcached
signal-event sogo-modify

Uninstall

yum remove sope* libwbxml gnustep* smeserver-sogo xmlsec* \
memcached python-memcached sogo* dovecot-pigeonhole smeserver-dovecot-extras libobjc libmemcached