The Roundcube Webmail suite
Go to file
Pablo Zmdl a03221041e
Run test with PHP 8.5-rc (#9970)
* Allow to inject composer arguments into testing scripts

* Run unit tests with PHP v8.5, too

* Run browser tests with PHP 8.5, too

* Depend on php-cs-fixer v3.8, which supports PHP v8.4

* Run code style checks in CI on PHP v8.4

* Check for vars being set and not null before using them as array keys

* Use generic tag name in container image build script

The script is meant for locally building images (the CI workflow runs
other code), so we now use localhost/ as namespace.

* Check that variable is usable before using it as array key

This includes proper type declarations for the method arguments and its return value.

* Ensure that the input to chr() is between 0 and 255.

* Require guzzle v7.10.0, which supports PHP 8.5

* Update phpunit a little to decide when to fail on deprecations

PHPUnit 10.5.47 and later know the flag `--do-not-fail-on-deprecation`, which allows us to make it not exit with code 1
in case of deprecations on the second run of the script. That second run uses the lowest valid dependencies, which might
contain deprecations when used with newer versions of PHP, but still are acceptable versions, and should not make our
tests fail.

* Run message rendering tests with PHP v8.4 and v8.5, too

* Check explicitly for null-ness

0 would be a valid value here.

* Replace chr() by mb_chr() and remove the workaround
2025-09-14 11:33:38 +02:00
.ci Run test with PHP 8.5-rc (#9970) 2025-09-14 11:33:38 +02:00
.github Run test with PHP 8.5-rc (#9970) 2025-09-14 11:33:38 +02:00
.tx Migrate to Transifex API v3 2023-04-09 18:29:22 +02:00
bin CS-Fixer: Enable modernize_strpos 2025-08-15 13:20:24 +02:00
config Fix typo in defaults.inc.php (replace mmust with must) (#9934) 2025-07-26 16:08:26 +02:00
installer Enforce leading backslash for non-namespaced non-Roundcube uses (#9935) 2025-08-15 10:27:00 +02:00
logs Remove redundant .gitignore files 2015-11-17 09:32:31 +01:00
plugins CS-Fixer: Enable modernize_strpos 2025-08-15 13:20:24 +02:00
program Run test with PHP 8.5-rc (#9970) 2025-09-14 11:33:38 +02:00
public_html CS-Fixer: Enable modernize_strpos 2025-08-15 13:20:24 +02:00
skins/elastic Allow to resize the compose textarea (#9838) 2025-06-15 10:13:02 +02:00
SQL Modernize more CS III (#9270) 2023-12-18 07:46:51 +01:00
temp Remove redundant .gitignore files 2015-11-17 09:32:31 +01:00
tests Fix flaky browser test 2025-09-05 00:24:53 +02:00
.editorconfig Add javascript to .editorconfig (#9825) 2025-03-24 18:19:00 +01:00
.eslintrc.js Docker compose for testing (#9525) 2024-07-22 11:44:09 +02:00
.gitignore Test message rendering (#9460) 2024-12-19 19:01:25 +01:00
.php-cs-fixer-fully_qualified_strict_types.php Enforce leading backslash for non-namespaced non-Roundcube uses (#9935) 2025-08-15 10:27:00 +02:00
.php-cs-fixer.dist.php CS-Fixer: Enable modernize_strpos 2025-08-15 13:20:24 +02:00
CHANGELOG.md Fix regression in handling of non-unicode characters in a plain text message (#9953) 2025-08-13 19:41:18 +02:00
CODE_OF_CONDUCT.md A Code of Conduct 2024-12-06 13:10:38 +01:00
composer.json Run test with PHP 8.5-rc (#9970) 2025-09-14 11:33:38 +02:00
index.php Add dummy index.php 2025-02-09 14:27:22 +01:00
INSTALL Makefile improvements and cleanup 2025-06-08 09:22:09 +02:00
jsdeps.json Fix TinyMCE localization installation (#9266) 2023-12-14 12:29:44 +01:00
LICENSE Changed license to GNU GPLv3+ with exceptions for skins and plugins 2012-01-18 11:10:46 +00:00
Makefile Make targets to help with publishing releases 2025-09-09 16:51:10 +02:00
package.json Bump eslint-plugin-unicorn from 53.0.0 to 54.0.0 (#9502) 2024-06-19 18:05:00 +02:00
phpstan.neon.dist Use PHPStan v2 2025-03-16 13:33:15 +01:00
README.md Remove Internet Explorer from README (#9963) 2025-09-14 11:33:07 +02:00
RELEASE_MANAGEMENT.md Document release management rules (#9823) 2025-03-24 18:17:39 +01:00
SECURITY.md Introduce security@roundcube.net as security contact 2024-11-05 14:50:57 +01:00
SOCIAL_WORK_GUIDELINES.md Social work guidelines for Roundcube 2024-12-06 13:10:38 +01:00
UPGRADING Add static files server (#9294) 2025-02-09 14:10:50 +01:00

Roundcube Webmail

roundcube.net

Tests Status

ATTENTION

This is just a snapshot from the GIT repository and is NOT A STABLE version of Roundcube. It's not recommended to replace an existing installation of Roundcube with this version. Also using a separate database for this installation is highly recommended.

INTRODUCTION

Roundcube Webmail is a browser-based multilingual IMAP client with an application-like user interface. It provides full functionality you expect from an email client, including MIME support, address book, folder management, message searching and spell checking. Roundcube Webmail is written in PHP and requires the MariaDB, MySQL, PostgreSQL or SQLite database. With its plugin API it is easily extendable and the user interface is fully customizable using skins.

The code designed to run on a webserver is mainly written in PHP and Javascript. It includes a custom framework with an IMAP library derived from IlohaMail and requires a set of external libraries (see composer.json and jsdeps.json files).

RELEASES

Roundcubemail follows the semantic versioning rules for releases. For more details please read the RELEASE_MANAGEMENT file.

INSTALLATION

For detailed instructions on how to install Roundcube webmail on your server, please refer to the INSTALL document in the same directory as this document.

If you're updating an older version of Roundcube please follow the steps described in the UPGRADING file.

BROWSER SUPPORT

Roundcube uses jQuery 3.x (and other libs) for its client and therefore inherits the browser support from there. This currently includes:

  • Chrome: (Current - 1) and Current
  • Edge: (Current - 1) and Current
  • Firefox: (Current - 1) and Current, ESR
  • Safari: (Current - 1) and Current
  • Opera: Current

LICENSE

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License (with exceptions for skins & plugins) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program 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. If not, see www.gnu.org/licenses/.

This file forms part of the Roundcube Webmail Software for which the following exception is added: Plugins and Skins which merely make function calls to the Roundcube Webmail Software, and for that purpose include it by reference shall not be considered modifications of the software.

If you wish to use this file in another project or create a modified version that will not be part of the Roundcube Webmail Software, you may remove the exception above and use this source code under the original version of the license.

For more details about licensing and the exceptions for skins and plugins see roundcube.net/license

CONTRIBUTION

Want to help make Roundcube the best webmail solution ever? Roundcube is open source software. Our developers and contributors all are volunteers and we're always looking for new additions and resources. For more information visit roundcube.net/contribute

CONTACT

For bug reports or feature requests please refer to the tracking system at Github or subscribe to our mailing list. See roundcube.net/support for details.

You're always welcome to send a message to the project admin: hello(at)roundcube(dot)net