Why are my emails not being sent?
This can come from a variety of reasons, here are the most common ones.
Reason 1: Configuration issues
There may be an issue with some of the SMTP configuration items, such as credentials, or the hostname, or the port for the selected protocol.
By default passbolt is quite discrete on why a given configuration is not working. You can use the following command to send a test email and get more debug information (replace www-data with nginx if you are running a RHEL-like server, or wwwrun in case you are using openSUSE):
$ sudo -H -u www-data bash -c "/usr/share/php/passbolt/bin/cake passbolt send_test_email [email protected]"
If this fails you should double check what is the recommended configuration in your email provider documentation. You can also ask on the community forum in case another user have a working configuration for the same provider.
Reason 2: Email notifications are disabled in the config
Another reason could be because email notifications are disabled in your configuration. You can review such settings in the administration panel, when you are logged in as an administrator in passbolt.

Reason 3: The cron system is stopped
Passbolt uses a system of email queue to send email notifications.
A dedicated cron job (located in /etc/cron.d/passbolt-{ce|pro}-server
) runs every minute to go through the queue and send emails.
So if you manage to send the test email but are not receiving notifications (such as registration emails), one of the reason may be that the cron service is stopped.
You can verify if the service is running by executing this command:
sudo systemctl status cron.service
You can also verify cronjobs activity with this command:
sudo journalctl -fu cron.service
Reason 4: There is an issue with the database schema related to the email queue
If after an update you are getting error messages such as:
Exception: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘EmailQueue.to’ in ‘field list’ ...
It is possible that the wrong version of the data model is stored in the cache. This can happen if the cache is not cleared after an install or an update. You can try clearing out the cache to solve this(replace www-data with nginx if you are running a RHEL-like server, or wwwrun in case you are using openSUSE).
sudo -H -u www-data bash -c "/usr/share/php/passbolt/bin/cake cache clear_all"
Reason 5: Gmail SMTP-Relay not accepting ‘localhost’ as EHLO
If you are using Google’s G-Suite SMTP Relay, you need to ensure you have set public IP address of your passbolt server in the EmailTransport section of /etc/passbolt/passbolt.php
:
(...)
'EmailTransport' => [
'default' => [
...
'client' => 'ip.add.re.ss'
...
],
],
(...)
In case you are using docker, you will have the EMAIL_TRANSPORT_DEFAULT_CLIENT
environment variable:
EMAIL_TRANSPORT_DEFAULT_CLIENT= 'ip.add.re.ss'
Other frequently asked questions in the same category
- How to install passbolt server
- How to make passbolt backups
- How can I update my passbolt server?
- What are the minimum server requirements?
- Does passbolt provide hosting?
- Where can I get help for installation issues?
- Why do I see an unsafe mode banner in the footer?
- Why are my emails not being sent?
- Why should I install haveged on virtual environments?
- How to update my subscription key
- Why am I getting ldap synchronization issues?
- How to increase auto logout time?
- Firewall rules
- How to generate JWT key pair manually
- Troubleshoot Docker
- How to migrate from HTTP to HTTPS
- How to use docker rootless images
- How to import SSL certificate on mobile application
- Troubleshoot SSL
- How to rotate server GPG keys
- iOS / Android Mobile FAQ
- How to install passbolt in non-interactive mode?
- Troubleshoot Helm
- How to set up NTP
- Docker Secrets