Talk:Zarafa
Rough Guide to get Zarafa running. Lots more to do...
http://forums.contribs.org/index.php?topic=42118.0
Download & Install
http://www.zarafa.com/download-community
Distribution = Rhel 4
tar -zxvf zarafa-6.20-rhel4-i386.tar.gz
yum localinstall libvmime*.rpm libical*.rpm zarafa-6*.rpm zarafa-webaccess-6*.rpm
Create the Database
mysqladmin create zarafa mysql -e "grant all privileges on zarafa.* to zarafa@localhost identified by 'yourpassword'" mysql -e "flush privileges"
Zarafa config files
nano /etc/zarafa/server.cfg mysql_user = zarafa mysql_password = 'yourpassword' mysql_database = zarafa user_plugin = unix user_plugin_config = /etc/zarafa/unix.cfg
nano /etc/zarafa/unix.cfg default_domain = yourserver.net min_user_uid = 5000 min_group_gid = 5000
SME templates
httpd.conf
mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
nano /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/86ZarafaAlias Alias /zarafa /var/www/html/webaccess/ <Directory /var/www/html/webaccess/> Options -Indexes AllowOverride None order allow,deny allow from all AddType application/x-httpd-php .php php_flag magic_quotes_gpc off php_flag track_vars on </Directory>
expand-template /etc/httpd/conf/httpd.conf
php.ini
mkdir -p /etc/e-smith/templates-custom/etc/php.ini
nano /etc/e-smith/templates-custom/etc/php.ini/99Zarafa extension = mapi.so
expand-template /etc/php.ini
Restart httpd
signal-event ibay-modify
.qmail
enable zarafa for a user
db accounts setprop xxxx EmailForward zarafa ### required to disable local delivery
mkdir -p /etc/e-smith/templates-user-custom/.qmail nano -w /etc/e-smith/templates-user-custom/.qmail/80Zarafa { my $zarafa = $user->prop('EmailForward') || 'local'; return "| /usr/bin/zarafa-dagent -q $USERNAME ; if [ $? -ne 0 ] ; then exit -1; else exit 99; fi;" if ($zarafa eq 'enabled'); }
/etc/e-smith/events/actions/qmail-update-user
Other tasks
Change webaccess apache rights
chown -R www:www /var/www/html/webaccess/tmp
Configure Zarafa services and add links for auto start
config set zarafa-server service status enabled config set zarafa-spooler service status enabled ln -s /etc/rc.d/init.d/e-smith-service /etc/rc.d/rc7.d/S99zarafa-server ln -s /etc/rc.d/init.d/e-smith-service /etc/rc.d/rc7.d/S99zarafa-spooler
Start Zarafa services
/etc/init.d/zarafa-server start /etc/init.d/zarafa-spooler start
Create Zarafa public store
/usr/bin/zarafa-admin -s
Assigning an administrator
When a user is an administrator, the user will be allowed to open all Zarafa stores of any user.
List users:
/usr/bin/zarafa-admin -l
Update a user to admin status:
/usr/bin/zarafa-admin -u <username> -a 1
Usage
After implementing the .qmail fragment mail is sent to zarafa, and NOT the users ~\Maildir
Webmail
Access with browser for a local user
Windows Clients
- MS Outlook using zarafaclient-*.msi add-on contained in the win32 directory of zarafa-*.tar.gz
Imap & POP
UNTESTED
Edit the config file
nano /etc/zarafa/gateway.cfg
Start the service
/etc/init.d/zarafa-gateway start
Mobiles
UNTESTED
Install rpm, start service, configure
Issues
Backup
- Either change the install location of the mail stores so they are backed up, requires using rpm -Uvh with a switch, not yum
- Or document what directories to add to backups
.qmail fragment
- for now a copy will go to the users SME inbox, something like the following is needed to exit safely.
return "| /usr/bin/zarafa-dagent -q $USERNAME ; if [ $? -ne 0 ] ; then exit -1; else exit 99; fi;"
- fragment now called .qmail/80Zarafa to allow for SME forwarding
- mailsorting contrib sorts to Maildir folders, zarafa won't see this mail. Disable procmail/maildrop and re-create internal zarafa rules
Restarting httpd-e-smith
Eg. modifying an ibay, causes a problem with webaccess
tail /var/log/messages <snip> Sep 28 16:30:27 kiwi httpd: PHP Warning: Function registration failed - duplicate name - mapi_zarafa_getuser in Unknown on line 0 Sep 28 16:30:27 kiwi httpd: PHP Warning: Function registration failed - duplicate name - mapi_zarafa_getgroup in Unknown on line 0 Sep 28 16:30:27 kiwi httpd: PHP Warning: mapi: Unable to register functions, unable to load in Unknown on line 0 workaround is to sv restart httpd-e-smith
Address book
The Zarafa global address book finds users and groups from /etc/passwd etc/group
We don't want machine names, ibays, system, the group of a user, maybe others. I don't see how to hide them, changing shell to /bin/false may break things
Folder Naming
SME and Zarafa use different folder naming. To enhance migration SME folders should be renamed prior to migration.
drafts > Drafts junkmail > Junk E-mail sent-mail > Sent Items trash > Deleted Items
Migrating users and data to Zarafa
Zarafa migration whitepaper describes various ways of migrating your users and your data to a Zarafa server.
http://download.zarafa.com/zarafa/release/docs/zarafa_migration.en.pdf
Performing IMAP migration from SME/IMAP to Zarafa/IMAP
Configure zarafa-gateway for migration enabling IMAP on port 144 only
nano /etc/zarafa/gateway.cfg pop3_enable = no pop3s_enable = no imap_enable = yes imap_port = 144 imaps_enable = no
Start the service
/etc/rc.d/init.d/zarafa-gateway start
Get imapsync and required perl module
wget http://dag.wieers.com/rpm/packages/perl-Mail-IMAPClient/perl-Mail-IMAPClient-2.2.9-1.2.el4.rf.noarch.rpm yum localinstall perl-Mail-IMAPClient-2.2.9-1.2.el4.rf.noarch.rpm
wget http://www.linux-france.org/prj/imapsync/dist/imapsync-1.264.tgz tar -zxvf imapsync-1.264.tgz cd ./imapsync-1.264 make install
Perform a user mail sync from SME/IMAP (host1/port1) to Zarafa/IMAP (host2/port2)
imapsync --noauthmd5 --host1 localhost --port1 143 --user1 <username> --password1 <password> --sep2 / --prefix2 "" --host2 localhost --port2 144 --user2 <username> --password2 <password>
Example to synchronize a user named 'bob' with password 'bob123' from SME IMAP into Zarafa:
imapsync --noauthmd5 --host1 localhost --port1 143 --user1 bob --password1 bob123 --sep2 / --prefix2 "" --host2 localhost --port2 144 --user2 bob --password2 bob123
After syncing is complete, stop zarafa-gateway service and/or edit /etc/zarafa/gateway.cfg to meet your needs.