All articles

Too many email notifications?

3 min. read

Passbolt team

Passbolt team

19 August, 2020

Want to reduce the number of these pesky Passbolt emails notifications without completely opting-out? Here is something that may interest you. Thanks to your feedback we have been planning to make some changes on how Passbolt s̷p̷a̷m̷ ̷y̷o̷u̷r̷ ̷m̷a̷i̷l̷b̷o̷x̷ sends notifications.

While we were working hard on Folders we have been thinking: what will happen regarding email notifications when someone moves a folder with lots of nested folders and resources inside it?

Well, we got some hints from Quentin:

Fig. when you import 600 passwords in passbolt and that you forget to turn off individual email notifications

So, we had to figure a solution. Of course, we did not want to change our entire system, because it works and it is simple, so we then decided to add an email digest layer on top of it.

If you are not familiar with the concept of email digest it is quite simple: it will combine emails content of the same kind into one single message. So it will group emails for a given user, for a given time period (the frequency of the background task, aka cronjob) or when a volume limit is reached (e.g. every 100 messages by default).

Introducing the EmailDigest plugin

EmaiDigest is a new plugin introduced in v2.13 that aggregate multiple emails into one email for the sake of helping you keep your sanity if you import or share multiple passwords at once.

Photo by Erica Steeve

Basically, it takes the emails just before they are sent, check what’s inside and see how it can package them in one email following a set of rules that are defined in the code and configuration to create what we call an email digest. Once done, it gives back these new emails to the existing email sender for delivery, like usual.

I know what you are thinking “ok, less talking, more emails”. Well, actually, it’s less emails, unless you have currently email notifications disabled, then it’s more or less more emails. Are you still following?

Long story short, some other changes are needed in passbolt before we can fully enable this feature from the configuration panel, but in the meantime we already want you to be able to opt-in for this feature and help us test and tweak it.

Which digests are available?

The list is not long but it covers most cases. Here is the list of available email digests (at the moment!):

  • When multiples resources are shared
  • When multiples resources that you can see are changed (created, updated or deleted)
  • When you are added to several groups
  • When you are removed from several groups
  • When you role changes in several groups
  • When groups you belong to are deleted
Example of an email digest

How can I test the digests?

First you need to know how to use Git, be able to connect to your passbolt server using SSH and edit the crontab. If all that sounds chinese to you, head for your building basement and find your system administrator hiding in the darkest corner. Ask them if they can setup a cronjob for you, if they say no, murmur to their hear “sudo install cron job” that may do the trick.

The code is available on the master branch on Passbolt Community Edition github. Once you have the latest version you need to edit the crontab:

$ crontab -e -u www-data

We suggest that you comment out the current line, copy it, and edit it to replace:

/var/www/passbolt/bin/cake EmailQueue.sender


/var/www/passbolt/bin/cake Passbolt/EmailDigest.sender

This way you will be able to switch back quickly to the regular system if you wish. So if this feature doesn’t work for you, as mentioned, in the previous section, you can opt-out by commenting or removing the line added. Done.

Any feedback?

Just try it out, let us know what you think of this new feature, your feedback is as usual, greatly appreciated. If you find bugs you can report them directly on github, of course you can also suggest code changes via pull requests.

Should we make this feature the default one? Do you have suggestions for improvements? Do you want the final behavior to be different? Let us know in the comments or on the community forum!