System Emails not being sent

[x ] I have read intro post: About the Installation Issues category
I have read the tutorials, help and searched for similar issues
I provide relevant information about my server (component names and versions, etc.)
I provide a copy of my logs and healthcheck
[x ] I describe the steps I have taken to trouble shoot the problem
I describe the steps on how to reproduce the issue

Server Operating System: Debian 11
Web server name and version: Nginx (unsure of version)
Database server name and version: Mysql 15.1 Distrib 10.5.19-MariaDB
PHP: version: 7.4.33
Passbolt version: 4.0.2

I have upgraded the server from the install script to the package version. Since then nobody can receive automated emails from the system (recovery emails, invite etc). The email test works fine.

Healthcheck is all PASS other than Debug turned on and these warnings:

There are a couple of other similar threads here but those solutions haven’t worked:

  • I have followed all the troubleshooting options in the why are my emails not being sent article.
  • I have ensured that the “When users try to recover their account, notify them.” setting is enabled in the UI
  • I have removed all organisation configurations from the database, so this should be default
  • The cron job is running, but the email_queue table isn’t clearing out

Some things to note, the healthcheck says that some notifications are disabled. But I assume this just means the notifications for “when password is created” and “when folder is created”.

This message appears in the UI “You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables). Submitting the form will overwrite those settings with the ones you choose in the form below.” But there are no settings in passbolt.php to override this setting that I can see.

Welcome to the forum @TomCB thank you for the great information, it’s very helpful.

This might be happening because the file permissions:

  • /usr/share/php/passbolt/bin/cron - it needs to be executable by the user in the cron job.
  • With the package install that is typically the webserver user as found in /etc/cron.d/passbolt-ce-server.

Confirm both of these.

Also check logs in /var/log/passbolt for errors.

Docker will not have a passbolt.php file, but as you have one, then it must be the environment variables which are still used to set email related settings.

Thank you for your help @garrett

It looks like the file is executable, and user is www-data in passbolt-ce-server


In the errors, I can’t see anything around SMTP or email. There are some Authentication errors for the route /auth/is-authenticated.json and route missing error for the route /settings.json

I don’t really understand the comment about docker, I installed passbolt via the passbolt-ce-server package.

Solved (ish)

I ended up spinning up a new Debian VM with a fresh install of passbolt and then migrated the configuration and database to the new server. Not ideal but it got me up and running.