This is only an issue if the spec is maintained manually. In my opinion, best practice is to generate the specification from the actual implementation—assuming you didn’t start by hand-crafting the spec in the first place.
If the spec is the source of truth, server and client stubs can be generated from it, which should likewise prevent this kind of drift.
I realize that working with OpenAPI isn’t always straightforward, but most of the friction usually comes down to gaps in understanding or insufficient tooling for a given tech stack.
If you know it's a glued-together solution that you'll have to rip apart if your program scales, why make it so complex in the first place?
You can utilize any mailing library in your backend to simply send emails or choose API email providers like Resend or Mailgun.
For spam protection, various providers are available, such as Cloudflare and Google.
> why make it so complex in the first place?
You're completely justified in questioning this, and I resonate with you and all the developers who feel the same way.