Horde

Installation: see:

Typically (stretch):

# <mysql setup>

apt install php-horde-webmail
webmail-install

# <admin user setup>

For buster&bullseye, Horde Webmail, IMAP authentication, IMAP admin account:

apt install php-horde-webmail apache2 mariadb-server php-mysql \
  dovecot-imapd default-mta mailutils

# Note: at the point the web interface offers unauthenticated admin
# access, but don't use it yet.

mariadb
  CREATE DATABASE horde;
  GRANT ALL PRIVILEGES ON horde.* to 'horde' IDENTIFIED BY 'secret';

# Prepare an admin user
adduser admin
echo Test | mail -s "Test" admin@buster-elts

webmail-install
# SQL config: mysqli / horde / secret / horde
# Specify an existing mail user [...]: admin

# Note: the web interface now requires credentials.

You can now login through: http://buster-elts.local/horde/ (with FQDN), admin:yourpassword, and check your e-mails.

To enable inline display of HTML in the IMP webmail (e.g. to test XSS vulnerabilities):

echo '<?php $mime_drivers["html"]["inline"] = true;' \
  > /etc/horde/imp/mime_drivers.local.php

Troubleshooting:

  • Manual configuration:

# Allow editing the configuration from the web interface
chmod 660 /etc/horde/*/conf.php
chown root:www-data /etc/horde/*/conf.php
# <edit configuration via web interface>
chmod 640 /etc/horde/*/conf.php

$BROWSER http://buster-elts.local/horde/admin/config/config.php
# Administration > Configuration > Horde > Authentication
# [auth][admins]: Administrator
# [auth][params][app]: imp
# or [auth][driver]: IMAP
# <Generate config>

# Administration > Configuration > Horde > Database
# [sql][phptype]: mysqli
# [sql][username,password,database]: horde
# <Generate config>
  • The notes application can cause PHP errors, in /etc/horde/mnemo/conf.php, add: $conf['storage']['params']['table'] = 'mnemo_memos';

For bookworm and trixie/sid, Horde 5.2.x is currently incompatible with PHP 8.1 and 8.4 (see BTS). webmail-install is broken, as well as the admin interface.

Test suite

For a single plugin package:

apt install autopkgtest
adt-run -B ./ --- null  # jessie
autopkgtest -B -- null  # stretch

or manually:

apt install php-horde-test
quilt push -a
cd Horde_Text_Filter-*/test/Horde/Text/Filter/
phpunit .
Copyright (C) 2021, 2025 Sylvain Beucler