[v4] No confirmation email sent

System Information
  • Strapi Version: 4.1.0
  • Operating System: MacOS Catalina
  • Database: postgres 14.1
  • Node Version: 14.18.3
  • NPM Version: 8.4.1
  • Yarn Version: 1.22.17

I would like to get the confirmation mail with the registration process of new users working. The strapi BE seems to be configured fine so far:

  • A test mail can be sent
  • users are created (even, when confirmation is set to “ON”)
  • All endpoints in Settings => Roles => [Public|Authenticated] => user-permissions settings activated
  • The email template “Email address confirmation” has a valid shipper email address assigned
  • A post-confirmation domain url is defined (it is “http://localhost:8080”)

But while the new user is created, no confirmation link is sent anywhere. “Request failed with status code 400”.
No logs are created upon registration in the terminal of the strapi backend app.
Without email confirmation link, everything is “green”.

I user Sendgrid as email provider.

The terminal of the VScode strapi instance spits out this:

[2022-02-21 15:34:15.441] error: Forbidden
ApplicationError: Forbidden
    at Object.register (/Volumes/_III_/Z_WWW/_ZZZ BrassTrainer/strapi-postgres/node_modules/@strapi/plugin-users-permissions/server/controllers/auth.js:349:17)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async returnBodyMiddleware (/Volumes/_III_/Z_WWW/_ZZZ BrassTrainer/strapi-postgres/node_modules/@strapi/strapi/lib/services/server/compose-endpoint.js:52:18)
    at async policiesMiddleware (/Volumes/_III_/Z_WWW/_ZZZ BrassTrainer/strapi-postgres/node_modules/@strapi/strapi/lib/services/server/policy.js:24:5)
    at async /Volumes/_III_/Z_WWW/_ZZZ BrassTrainer/strapi-postgres/node_modules/@strapi/strapi/lib/middlewares/body.js:24:7
    at async /Volumes/_III_/Z_WWW/_ZZZ BrassTrainer/strapi-postgres/node_modules/@strapi/strapi/lib/middlewares/logger.js:22:5
    at async /Volumes/_III_/Z_WWW/_ZZZ BrassTrainer/strapi-postgres/node_modules/@strapi/strapi/lib/middlewares/powered-by.js:16:5
    at async cors (/Volumes/_III_/Z_WWW/_ZZZ BrassTrainer/strapi-postgres/node_modules/@koa/cors/index.js:95:16)
    at async /Volumes/_III_/Z_WWW/_ZZZ BrassTrainer/strapi-postgres/node_modules/@strapi/strapi/lib/middlewares/errors.js:13:7

Any idea what I am doing wrong here?

My error was my misunderstanding of how Sendgrid works: In strapi, I have to use the same email address – not just any – that I registered with sendgrid as the sender / shipper email. Also and especially in the email templates!

Once I fixed this, everything was working fine.