Repository navigation
Cloud sign-up refuses disposable email addresses - #897
Merged
Merged
Conversation
A throwaway inbox buys a fresh 7-day trial every week, since the licence site grants one trial per address. Cloud registration now answers 400 for domains on the CC0 disposable-email-domains list (9,205 domains, subdomains included), before the address is looked up so the answer still says nothing about existing accounts. Forwarding services that reach a real inbox (Apple Hide My Email, SimpleLogin, Firefox Relay, DuckDuckGo) are not on the list. Self-hosted, invitations and SSO are unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The licence site grants one trial per email address, so a throwaway inbox buys a fresh 7-day trial every week. These sign-ups also add noise to the funnel numbers and to the drip/winback lists, and every reminder sent to a dead inbox costs sender reputation. Today the cloud has only 9 such accounts (none paid), so this is cheap hygiene rather than a fix for a large problem.
What
src/auth/disposable-email-domains.json: the disposable-email-domains blocklist (CC0, 9,205 domains, commit1aac72a).isDisposableEmail()matches the domain and any parent domain (a@inbox.yopmail.comis caught;notyopmail.comis not).POST /api/auth/registeranswers 400 with "Please sign up with a permanent email address. Disposable email addresses are not accepted." The login page already shows the backend message as is.Not affected
Tests
disposable-email.util.spec.ts, plus cloud and self-hosted cases inauth.controller.spec.ts;src/auth285/285;tscand eslint clean.nest buildcopies the JSON todist/src/auth/. The compiled util was checked fromdist.lala@yopmail.com,X@MAILINATOR.COManda@inbox.yopmail.comgot 400 and created no row.jane@gmail.comandabc@privaterelay.appleid.comgot the usual neutral 201.