/** * Public-/Freemail-Provider-Domains. * * Diese Domains dürfen NIEMALS als Custom-Domain (web ODER mail) geblockt oder * in die kuratierte Country-Liste vorgeschlagen werden: * - web: icloud.com/gmail.com blocken würde die Webmail des Users sperren * - mail: würde JEDE Mail von diesem Provider löschen (Kontakte, Banken, alles) * * Realer Vorfall: User hat eine Casino-Spam-Mail von `xyz@icloud.com` geöffnet, * die komplette Adresse kopiert + ins Add-Feld gepackt → wir extrahierten * `icloud.com` und hätten es geblockt/veröffentlicht. Das muss hart verhindert * werden — auf JEDER Ebene (Frontend-Hinweis + Backend-Reject). * * Spiegel-Liste im Frontend: `apps/rebreak-native/hooks/useCustomDomains.ts` * (PUBLIC_EMAIL_DOMAINS) — bei Änderungen beide synchron halten. */ export const PUBLIC_EMAIL_DOMAINS: ReadonlySet = new Set([ // Google "gmail.com", "googlemail.com", // Apple "icloud.com", "me.com", "mac.com", // Microsoft "outlook.com", "outlook.de", "hotmail.com", "hotmail.de", "hotmail.co.uk", "hotmail.fr", "live.com", "live.de", "msn.com", // Yahoo "yahoo.com", "yahoo.de", "yahoo.co.uk", "yahoo.fr", "ymail.com", "rocketmail.com", // GMX / United Internet (DACH) "gmx.de", "gmx.net", "gmx.at", "gmx.ch", "gmx.com", "web.de", // AOL "aol.com", "aim.com", // Proton / Tutanota / Posteo / Mailbox (privacy) "proton.me", "protonmail.com", "pm.me", "tutanota.com", "tutanota.de", "tuta.io", "posteo.de", "posteo.net", "mailbox.org", "hey.com", // Deutsche ISP-Freemail "t-online.de", "freenet.de", "arcor.de", // Generische Freemail "mail.com", "mail.de", "email.de", "zoho.com", "fastmail.com", "fastmail.fm", "hushmail.com", // Yandex / Mail.ru "yandex.com", "yandex.ru", "mail.ru", // Frankreich (FR-Markt) "laposte.net", "orange.fr", "free.fr", "sfr.fr", "wanadoo.fr", // Asien "qq.com", "163.com", "126.com", "naver.com", "daum.net", ]); /** * True wenn die (bereits normalisierte, lowercase) Domain ein * Public-/Freemail-Provider ist und daher nicht blockbar/vorschlagbar. */ export function isPublicEmailDomain(domain: string): boolean { return PUBLIC_EMAIL_DOMAINS.has(domain.trim().toLowerCase()); }