Olivier Thauvin | 27 Mar 13:59 2015

[RCD] Patch: one fix and one feature

Hi guys,

We are using roundcube at works and we found two problem we'd really like to see

The first one is trival: on/off french translation in sieve plugin are wrong telling
filter is off when it's on and vice et versa.

The second is a bit more tricky: the dovecot sieve vacation feature will act
only the receive mail is addressed to exactly the user's mail. But the mail I
use is not LOGIN <at> domain but first.lastname <at> domain making sieve never replying.
The workaround is to add my address when enabling sieve filter.

The patch I did will find my addresses from my roundcube identities and add them
automatically. So our users has less things to do to make it works.

I hope you'll find them usefull.




Olivier Thauvin
♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖
commit 43c41f7772e7484cc48e118d922598da552d8d91
Author: Olivier Thauvin <olivier.thauvin <at> latmos.ipsl.fr>
Date:   Mon Mar 16 18:15:09 2015 +0100
(Continue reading)

Michael Heydekamp | 22 Mar 21:41 2015

[RCD] Submenus of contextmenu not accessible anymore in 1.2-git

Currently submenus of contextmenu plugin are not accessible anymore in
1.2-git, just a very small white rectangle is being shown instead.

Any hint...?


Michael Heydekamp
Co-Admin freexp.de
Roundcube Development discussion mailing list
dev <at> lists.roundcube.net
Thomas Bruederli | 18 Mar 21:14 2015

[RCD] Update 1.1.1 released

Dear Roundcube users

We're proud to announce the first service release to the stable
version 1.1 of Roundcube webmail. It contains
some important bug fixes and improvements in error handling as well as
a few new features and configuration options.

See the full Changelog here: http://trac.roundcube.net/wiki/Changelog

It's considered stable and we recommend to update all productive
installations of Roundcube with this version. Download it from

And remember: backup before you update!

Kind regards,
Roundcube Development discussion mailing list
dev <at> lists.roundcube.net

Rodrigo Santellan | 16 Mar 22:04 2015

[RCD] Problem with rcube_imap_cache.


I'm trying to decoupling a little bit the roundcube base to use in a project.

My problem is that running roundcube in console with only the framework works like a charm but when I try to put in a Symfony2 project I have undefined $index on rcube_imap_cache.

The line is this:
$this->add_index_row($mailbox, $sort_field, $data, $mbox_data, $exists, $index['modseq']);

On the method: function get_index($mailbox, $sort_field = null, $sort_order = null, $existing = false)

My problem is that I cannot find where $index is defined.

Where is that property is constructed?

Roundcube Development discussion mailing list
dev <at> lists.roundcube.net
Hans de Raad | 8 Mar 21:58 2015

[RCD] Fwd: Re: Roundcube Next - a survey

Hi Thomas,

first of all, many thanks for the great software you and the other RC communitymembers have provided me with
in the past years.
It has been an absolute pleasure using it and I have a lot of very satisfied customers thankfully using it on a
daily basis as well.

With regards to your questions:

#1: what's your take on the programming language choice?

From a hosting perspective, currently nothing beats PHP. However PHP does have its drawbacks mostly
related to shared hosting environments using old versions (which are a real PITA).
From a developer perspective, for backend web development modern PHP is just as suitable for just about any
project as Python, Ruby or even Java. So when selecting a programming language of choice in my projects my
first priority would be developer familiarity with the language and the status of the frameworks
avaiable in it.

And from that perspective, PHP has quite a lot going for it. Frameworks like Symfony 2 are very mature and
versatile (even huge projects like Drupal are moving towards leveraging their power). Also with modern
theming engines like Twig, separating layout and business logic is very mature.

Performance wise, for most projects PHP is good enough, especially since mostly the performance
bottlenecks aren't in the webserver (or PHP parser/engine) but in the database/storage behind it.

But, that said, there are valid alternatives and NodeJS is definitely one project to watch. However, I've
had mixed experiences with its stability, especially since the codebase is evolving very rapidly
(featurewise) there are quite some things to watch out for when utilizing third party libaries since not
all of them are keeping up with this well enough. Another issue is in distributions, especially
enterprise (or LTS) releases tend to stick with older versions of packages only backporting necessary
security patches. 
This could ofcourse change when containerized deployments become more mainstream, however I expect that
will take at least a couple of years to really materialize.

#2: what are your favorite javascript application libraries and frameworks?

At the moment everything seems to be about either Backbone.js, Ember.JS and AngularJS.
These platforms are quite different and depending on your needs can either be very much overkill or
underfeatured. Backbone in example doesnt have two way data binding out of the box (you can use something
like Epoxy.js or stickit), while the others do, however backbone is severely lighter than the other 2 and
can utilize quite a broad range of external libraries like underscore js.

AngularJS is pretty much universally regarded (always dangerous to state something like that, but please
allow me for the sake of argument) to have the broadest featureset, but that also comes with quite a steep
learning curve.
Projects which start from scratch often seem to select Angular, while Backbone seems to be integrated with
existing systems (like, again Drupal) quite often.

#3: who's willing to help us draft the perfect protocol for this?

I have some experience with messaging protocols ranging from bus networks (yay good old RS485) and SNMP to
XMPP, so I'd love to contribute to that, but I don't have a lot of time available, so my contributions would
probably mostly be limited to reviewing and the occasional comment.
My advise in general however would be (and I know I'm preaching to the choir, but still) to adopt a protocol if
it already exists and can be considered an open standard. from that POV the JMAP protocol looks very promising.


I hope my input has been useful to you! Looking forward to see what you and the other great community members
come up with!

Best regards


OpenNovations / DevHdR

Van Sevenbergestraat 49
2274PK Voorburg

Tel +31 6 83578847

www.hcderaad.nlHans de Raad
Attachment (Info #4.vcf): text/vcard, 181 bytes
Roundcube Development discussion mailing list
dev <at> lists.roundcube.net
Michael Heydekamp | 8 Mar 00:53 2015

[RCD] RC session terminated every few minutes...?


currently my Roundcube session is being terminated every few minutes, so I
have to type this message pretty fast. ;)

Roundcube Webmail 1.2-git [GIT 20150306.1906]

Ist this a (known) Roundcube issue...?


Michael Heydekamp
Co-Admin freexp.de
Roundcube Development discussion mailing list
dev <at> lists.roundcube.net
Cor Bosman | 7 Mar 14:02 2015

[RCD] session storage driver plugin support

Hey all, I recently submitted two PRs to refactor session storage. The first made it 
possible to hook into sessions, which get initialised very early in the code execution path.
The second refactored session storage drivers into separate classes and added redis
as a session storage driver. 

Both PRs were accepted, so for people wanting to experiment you can use redis as
a session store in the master branch. I also created a sample plugin that adds php-memcached
(not to be confused with php-memcache, they are two different PHP memcache options) as
a session store. 

You can find the example plugin here:  https://github.com/corbosman/session_memcached


Roundcube Development discussion mailing list
dev <at> lists.roundcube.net
Thomas Bruederli | 6 Mar 18:10 2015

[RCD] Roundcube Next - a survey

Dear developers and list lurkers

The Roundcube project will celebrate its 10th anniversary this year
and a decade is just right to stop for a while and let your thoughts
flow into new directions. Some of you may already have read my random
thoughts [1] about the future or Roundcube development and since I
wrote this down, the idea of a fresh new successor to Roundcube has
settled in my mind and won't go away that easily. The initial
responses on that were exclusively positive and this encourages us to
take it one step further now. Meanwhile I looked into many other
applications, libraries, frameworks, apis and programming languages to
find the best set of tools that would form a new top-noch webmail
application for the next decade. A loose and admittedly rather limited
collection has manifested on a wiki page [2] already.

The primary goal of rethinking Roundcube and webmail in general is
certainly to improve the user experience for everyday communication.
The second important aspect (at least for me as a developer) is to
have a slick, structured and flexible framework to build new features
and applications on top of. The current Roundcube codebase comes with
a variety of technological and conceptual constraints which rule the
ongoing development in a rather negative manner. Therefore thinking of
a successor that is completely independent and unrelated to the
current software stack is a tempting exercise which I'd like to invite
you to.

As already outlined in the blog post [1], the new Roundcube should
move most of the application logic from the server to the client.
Browsers are way more capable than they've been 10 years ago and times
of server-side template rendering are definitely over. Those who are
familiar with the Roundcube codebase will immediately understand that
such a change in paradigms also means a complete break of
compatibility with all existing components of Roundcube, including

So let's free our mind from what we know about Roundcube and start
over. This can even go as far as choosing something else than PHP for
the server part which is supposed to be reduced to a simple wrapper
for data exchange between the backend storage (IMAP et al) and the
client application. Possible candidates are PHP (still), Python,
Node.js. At least these are the ones I'm currently familiar with. So
let's take a deeper look into these as I'm particularly interested in
your opinions, also from a deployment and hosting perspective.


The major disadvantage of PHP that has become evident in Roundcube is
its short process lifetime requiring a full startup, database and IMAP
connection+authentication and closing all connections again for every
single HTTP request. Even FPM and persistent socket connections (which
IMO are still unreliable and should be avoided) don't really help to
overcome this.

The advantage of sticking with PHP certainly is that we can re-use
some of the existing parts from the Roundcube codebase, such as the
IMAP library, the plugin infrastructure etc. And in terms of
deployment: PHP is everywhere and lots of sysadmins are familiar with
deploying and maintaing and tweaking PHP applications.

* Python

Although Python isn't perfect for running as long-term processes
either, there are some well developed frameworks out there (e.g.
Twisted or Flask) which could be used to manage persistent connections
between the client (think websockets) and storage backends. In
addition to that, its easier to implement reactive applications with
an asynchronous architecture.

Regarding deployment: the Python universe has some well established
package repositories which make installation and deployment pretty
easy. From a sysadmin point of view, I have no idea how easy or
painful the maintenance of Python applications is. But the number of
hosting providers offering Python is certainly lower that for PHP.

* Node.js

The new star on the web app sky. Its architecture seems to make
node.js perfect for long-living server processes and maximum
throughput. Although we could use Javascript, which we're all familiar
with, the number of pitfalls to use that for server applications is
quite high. The learning curve here shouldn't be underestimated.

And opinions certainly go into two distinct directions when in comes
to deploying and scaling node applications. Installation should come
easy as there's basically only npm for all the package management and
everybody doing node is familiar with that.

OK, so question #1: what's your take on the programming language choice?

The client part luckily doesn't need such a decision as there's only
Javascript for this. But the variety of ways how to build a
single-page web application and the number of frameworks helping you
to do this is mind-boggling. I have to admit that in this regard, I'm
one of the old fashioned web developers from the late 90ies and yet
have to learn a lot about the brave new world of web development. I
guess we can all agree that nobody wants to build a new web
application framework from scratch as we did for Roundcube due to the
lack of sophisticated solutions back in 2005. But choosing the right
tools might be essential for the timeline and the success of Roundcube

So here's question #2: what are your favorite javascript application
libraries and frameworks? What experience did you make let's say with
Angular or Backbone? What are the pitfalls?

Finally another big challenge we have when aiming to create the
perfect webmail application is the way we make the client and the
server talk together. We should carefully draft a proper data model
and an according protocol for this. For the data model, I already
tried to create a first draft in regards of what we already know the
application should be capable of. This includes multi-account support,
tagging, sharing and the extensibility for calendaring and other
groupware-like tasks.

For the client-server communication, there are some interesting
concepts out there but none of them actually seems to suit the purpose
we're after. They either lack the concept of sharing (i.e. ACL) or do
not account for collections such as multiple different address books
one account my have access to. The candidates I'm referring to are:
Nilas.com (former InboxApp), JMAP (by Fastmail) or the Gmail API (also
to be supported by Dovecot). All are good approaches and generally
point into the same direction but I couldn't say that one of them
would already solve the use-cases we want to cover in Roundcube. And
yes, we're seeking for a protocol and not an API [3] :-)

And this is question #3: who's willing to help us draft the perfect
protocol for this? I guess this should be a highly collaborative and
iterative process and I'm keen on any input from people who are
experienced with this type of task.

Thank you all for reading and participating in this survey. I'm really
excited to move this forward. All free and open source of course!


[1] https://roundcubeinbox.wordpress.com/2014/09/12/roundcube-next-if-we-would-start-over-again/
[2] http://trac.roundcube.net/wiki/Roundcube_Next
[3] https://vimeo.com/71278954
Roundcube Development discussion mailing list
dev <at> lists.roundcube.net

Glen Eustace | 5 Mar 19:20 2015

[RCD] Setting the RC local user

I have been experimenting with allowing any of a users email aliases to be used to login.  Using the login hook, I look up the address in our database and return the appropriate user.  Dovecot then does the authentication.

Unfortunately, I am now getting multiple local users for the same imap mailbox.  Is there anyway I can specify that local user so that I don’t get a bunch of split personalities ?


Glen Eustace,
GodZone Internet Services, a division of AGRE Enterprises Ltd.,
P.O. Box 8020, Palmerston North, New Zealand 4446
Ph +64 6 357 8168   Fax +64 6 357 8165  Mob +64 27 542 4015

“Specialising in providing low-cost professional Internet since 1997"

Roundcube Development discussion mailing list
dev <at> lists.roundcube.net
Cor Bosman | 5 Mar 14:22 2015

[RCD] PHP profiler

Hey all, I ran into a new cool php profiler yesterday.  https://blackfire.io

It's very easy to set up and could help us find bottlenecks in roundcube. Already used it to find some issues in local plugins.  

Example profiler view for roundcube 1.0:  http://shor.ter.net/p9


Roundcube Development discussion mailing list
dev <at> lists.roundcube.net
Martin Lacina | 22 Feb 10:01 2015

[RCD] online documentation translation

there is almost complete translation of Slovak version of Webmail Online 
Also French translation is complete to 91%.
Could they be added to End User Documentation section on trac/wiki?

Martin Lacina
Roundcube Development discussion mailing list
dev <at> lists.roundcube.net