PHPackages                             sagredo-dev/qmailforward - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sagredo-dev/qmailforward

ActiveRoundcube-plugin[Utility &amp; Helpers](/categories/utility)

sagredo-dev/qmailforward
========================

Adds the ability for qmail users to edit their forward from within Roundcube.

1.0.4(6mo ago)1841GPL-3.0-or-laterPHPPHP &gt;=8.0

Since Oct 22Pushed 6mo ago2 watchersCompare

[ Source](https://github.com/sagredo-dev/qmailforward)[ Packagist](https://packagist.org/packages/sagredo-dev/qmailforward)[ Docs](https://github.com/sagredo-dev/qmailforward)[ RSS](/packages/sagredo-dev-qmailforward/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (1)Versions (7)Used By (0)

Roundcube Webmail `qmailforward` plugin
=======================================

[](#roundcube-webmail-qmailforward-plugin)

This plugin adds the ability for `qmail` users to edit their forwards from within `Roundcube` with no need to ask their administrators for doing that via `qmailadmin`. `qmailforward` saves the forwards to `MySQL` database.

Unlike the `managesieve` plugin, from which this plugin is inspired but which only apparently behaves in the same way, it does not use the sieve rules but it saves the forwards on the database, also preserving the possibility of saving a record that enables the copy of messages on the mailbox. In this case the execution of the favorite delivery agent is launched, which can also be set from the configuration file.

Using this method instead of sieve rules allows `qmail` users to keep the SPF policies in effect.

Inspiration and part of the code for this plugin was taken from the `sauserprefs` and `managesieve` plugins. The latter one provides an identical html form.

Requirements
------------

[](#requirements)

- `vpopmail` configured with virtual aliases `--enable-valias` and patched to modify the `valias` database schema. You can manually modify the database schema as shown below.
- [`vpopmail` version 5.6.x](https://www.sagredo.eu/en/qmail-notes-185/installing-and-configuring-vpopmail-81.html) configured with `--enbable-defaultdelivery` if you want to manage the `dot-qmail` files and install `dovecot-lda` to use `sieve` together with `qmail` forwards. Look at [this page](https://www.sagredo.eu/en/qmail-notes-185/sql-valias-with-sieve-solution-for-qmail-new-patches-and-roundcube-plugin-301.html) for more info.
- you may want to upgrade [`qmailadmin`](https://www.sagredo.eu/en/qmail-notes-185/qmailadmin-23.html) as well if using [`vpopmail` version 5.6.x](https://www.sagredo.eu/en/qmail-notes-185/installing-and-configuring-vpopmail-81.html).

Install
-------

[](#install)

- Place this plugin folder into the plugins directory of `Roundcube`
- Add `qmailforward` to `$config['plugins']` in your `Roundcube` config
- If you are switching to valiases the table will be created for you at first access. If you already have the valias table but it's still empty, just erase it and let `vpopmail` create it for you.
- If your valias table already exists and it contains records that you don't want to loose, then execute the following query. Drop any `PRIMARY KEY` if you already have one.

```
USE vpopmail;
ALTER TABLE `valias` ADD `valias_type` TINYINT(1) NOT NULL DEFAULT '1' COMMENT '1=forwarder 0=lda' FIRST;
ALTER TABLE `valias` ADD `copy` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '0=redirect 1=copy&redirect' AFTER `valias_line`;
ALTER TABLE `valias` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);
ALTER TABLE `valias` ADD INDEX (`valias_type`, `alias`, `domain`);
```

Configuration
-------------

[](#configuration)

- The default config file is [*plugins/qmailforward/config.inc.php.dist*](config.inc.dist.php)
- Copy the options you have to modify to *plugins/qmailforward/config.inc.php*
- You must set at least the database connection string

Supported languages
-------------------

[](#supported-languages)

- de\_DE - German
- en\_GB - English (GB)
- en\_US - English (US)
- fr\_FR - French
- it\_IT - Italian
- ru\_RU - Russian

Send new translations to the e-mail below.

Author
------

[](#author)

Roberto Puzzanghera \[roberto dot puzzanghera at sagredo dot eu \]

License
-------

[](#license)

This plugin is released under the [GNU General Public License Version 3+](https://www.gnu.org/licenses/gpl.html).

Support
-------

[](#support)

To ask for support post a comment in [my blog](https://www.sagredo.eu/en/qmail-notes-185/sql-valias-with-sieve-solution-for-qmail-new-patches-and-roundcube-plugin-301.html).

More info
---------

[](#more-info)

To have a wider view on the idea behind this plugin look at [this page](https://www.sagredo.eu/en/qmail-notes-185/sql-valias-with-sieve-solution-for-qmail-new-patches-and-roundcube-plugin-301.html).

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance66

Regular maintenance activity

Popularity12

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 96.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~147 days

Recently: every ~180 days

Total

6

Last Release

203d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/02cf567b25b7a97e0ada07b92d778c8abaed102650f524f064d94a30f2014906?d=identicon)[sagredo](/maintainers/sagredo)

---

Top Contributors

[![sagredo-dev](https://avatars.githubusercontent.com/u/73385325?v=4)](https://github.com/sagredo-dev "sagredo-dev (51 commits)")[![semhoun](https://avatars.githubusercontent.com/u/54236487?v=4)](https://github.com/semhoun "semhoun (2 commits)")

---

Tags

qmailroundcuberoundcube-pluginforwardqmail

### Embed Badge

![Health badge](/badges/sagredo-dev-qmailforward/health.svg)

```
[![Health](https://phpackages.com/badges/sagredo-dev-qmailforward/health.svg)](https://phpackages.com/packages/sagredo-dev-qmailforward)
```

###  Alternatives

[roundcube/carddav

CardDAV adapter for connecting to CardDAV-enabled addressbooks

28155.3k](/packages/roundcube-carddav)[johndoh/globaladdressbook

Adds global address books to Roundcube

706.0k](/packages/johndoh-globaladdressbook)[johndoh/sauserprefs

Control SpamAssassin settings from within Roundcube

583.6k](/packages/johndoh-sauserprefs)[jfcherng-roundcube/show-folder-size

A Roundcube plugin which shows folder size.

2515.2k](/packages/jfcherng-roundcube-show-folder-size)[kolab/calendar

Calendar plugin

3010.5k](/packages/kolab-calendar)[johndoh/swipe

Adds swipe actions to the message list of Roundcube

115.3k](/packages/johndoh-swipe)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
