LoginDaddy
Blog · alternatives

YOPmail alternative: an address that stays yours

YOPmail's core interaction is typing any name and getting an inbox. It is fast and memorable, and it has worked for years. But there is a structural fact worth stating plainly: if the address is chosen, it is guessable. Anyone who types the same name sees the same mailbox. That is not a bug in YOPmail — it is the design. This post is about what that design implies.

The guessability problem

A verification code sent to blueshoe77 is readable by everyone who tries blueshoe77. Short, human names are tried constantly. YOPmail knows this, which is why they offer alternate-domain tricks — but the base property remains: knowledge of the name equals access to the mail. There is no credential, because there is no account.

What session binding changes

On this page, you do not choose the address — you are assigned one, and it is bound to a session cookie in your browser. Knowing the address string is not enough to open the mailbox from another browser; the server looks up mail by session, never by typed name. Rotating issues a new prefix and purges the old mailbox so a later visitor cannot read leftovers.

What it does not change

Email is still plaintext-ish infrastructure. A session-bound throwaway is not end-to-end encryption, not a password manager, and not a place for anything you would miss. It narrows exactly one hole — strangers guessing your inbox name — and leaves the rest of email's threat model intact. Use it for signup codes. Do not use it for banks.

Open the inbox · all notes

The math of guessability

Quantify the YOPmail-style risk and the intuition sharpens. A human-chosen name has perhaps 20-30 bits of entropy at best — dictionary words, years, short patterns — meaning an attacker enumerating common names covers a large share of active inboxes cheaply. Automated scanners do exactly this around the clock: generate plausible names, check for mail, harvest codes. Against this, random assignment helps enormously: a 128-bit random local-part is unguessable by construction, and even shorter random strings (40+ bits) exceed economical enumeration. But randomness alone is insufficient if the lookup is by name — a random address that anyone can type into a public inbox page is only as private as the channel that carried it to you. Real protection needs both: unguessable addresses and a lookup keyed to something the guesser lacks. That second half is what session binding provides, and it is worth understanding mechanically rather than as a slogan.

How session binding works here

Public behavior only, no internals: after the Turnstile check, the server creates a session identified by an HttpOnly cookie in your browser and assigns an address to that session. Mail lookups use the session, never a typed name — there is no page on this site where entering an address string shows its mail, because that page would recreate the exact hole being closed. Rotation issues a new address prefix under the same session and purges the old mailbox server-side, so the previous address stops resolving for everyone including you. Losing the cookie (cleared browser, different device) orphans the box rather than exposing it: without the session, there is no path to the mail. Note the honest boundaries: the operator can still see stored mail (any hosted inbox can — encryption would require keys we refuse to manage), and mail in transit traverses normal email infrastructure. Session binding closes the guessing hole and the sharing hole; it does not make email confidential. Nothing makes email confidential except end-to-end encryption, which no throwaway page offers.

Choosing names anyway: damage control

Sometimes you will still use a name-chosen inbox — a familiar tool, a specific domain need — and the risk can be managed rather than eliminated. Use long random strings instead of words (a password manager generates fine inbox names). Treat the mailbox as observed: assume anything arriving is readable by others and never route resets, codes for valuable accounts, or personal data through it. Rotate aggressively: new name per job, never reuse across services. And separate the jobs explicitly — convenience inboxes for newsletters and downloads, session-bound boxes for anything with a code. The underlying principle generalizes beyond email: whenever access equals knowledge of a name, the name must be unguessable and unshared, and most failures come from the second half. People pick memorable names and then act surprised at memorability's cost.

Cookie mechanics: HttpOnly, Secure, SameSite

Session binding is only as strong as the cookie carrying it, so the attributes matter. HttpOnly keeps JavaScript from reading the session token — a cross-site scripting flaw in the page cannot exfiltrate what scripts cannot see. Secure restricts the cookie to HTTPS transport, defeating passive network observers. SameSite policies blunt cross-site request forgery by controlling when browsers attach the cookie to third-party-initiated requests. Together they form the standard session-cookie triad, and any session-bound inbox should implement all three (ours does). What cookies cannot do: survive clearing (by design — clearing logs you out of everything), transfer between devices (sessions live per browser), or protect against an attacker already running code in your browser (game over regardless). Users sometimes ask for "remember me" on throwaway boxes; the answer is that persistence is the opposite of the product — a session that survives is a mailbox that lingers, and lingering is what rotation and expiry exist to prevent.

Device loss and orphaned boxes

Lose the device or wipe the browser and the session dies with it — by design, and worth walking through so it surprises no one. The mailbox persists server-side until its normal expiry (mail about two days here), but no path leads back to it: no account, no recovery email, no support lookup. The mail inside is effectively sealed until purged. For signup codes this is nearly always harmless — request a fresh code to a fresh address and continue. For anything irreplaceable it would be catastrophic, which restates the standing rule: throwaway boxes hold nothing you cannot afford to orphan. Contrast with account products where device loss starts a recovery flow; the convenience costs identity infrastructure, and the choice between orphanable-by-design and recoverable-by-process is the same accounts-versus-sessions tradeoff from the comparison pages. Pick orphanable for codes, recoverable for continuity, and never confuse which job you handed to which product.

Squatting and namespace collisions

Name-chosen inboxes have a land-rush property: desirable names get taken, squatted, or collided with. Two users picking the same name share one mailbox — neither notified, both reading everything. Attackers exploit this deliberately: pre-register names matching a victim's likely choices (usernames reused across services make this trivially predictable), then harvest whatever arrives. Services mitigate with alternate domains and disposable suffixes, but the base problem is structural — first-come naming without ownership is a commons, and commons get grazed. Assigned addresses sidestep the entire category: no choosing means no squatting, no collisions, no predictability. The residual version on our side is session fixation luck (negligible with proper randomness) rather than human-predictable naming. If you must use name-chosen inboxes, treat every name as already taken by someone hostile: use maximum-entropy strings, never reuse across services, and assume observation from the first minute. Convenience naming and security are opposites; pick one per job with eyes open.

Password managers as inbox-name generators

The practical fix for guessability is tooling most readers already own: password managers generate high-entropy strings on demand. Use them for inbox names the same way as passwords — 20+ random characters, unique per service, stored alongside the account they serve. This converts the memorability problem into a vault problem you already solved: the manager remembers, you copy-paste, enumeration becomes infeasible. Pair generated names with the rotation discipline from earlier (new name per job, no reuse) and a name-chosen inbox approximates the privacy of an assigned one — minus session binding, which no naming scheme provides. The workflow: generate, paste into the inbox page, paste into the signup form, save both in the vault entry, delete when done. Thirty seconds of overhead per signup buys the entropy property that readable names lack. Tools compound: the manager you bought for passwords quietly solves throwaway naming too, which is the best kind of feature — one you already paid for, applied somewhere new.

Open the inbox · all notes

The session checklist, distilled for daily use: prefer assigned addresses over chosen names wherever the job involves codes; verify the page binds mail to sessions (no public lookup by typed name) before trusting it; rotate after sensitive jobs rather than reusing boxes; clear sessions on shared devices immediately; and keep a password-manager-generated name as fallback for tools without session binding. Five habits, each cheap, jointly closing the guessing hole, the sharing hole, and the reuse hole. Review the list twice a year — the threat model evolves (enumeration tooling improves, new products change defaults) while habits decay. Security that fits on an index card gets practiced; security that needs a manual gets postponed. The card above fits.

Open inbox