Files
64c117ea9e feat!: remove non-functional Yahoo API verifier (#198)
* feat!: remove non-functional Yahoo API verifier

The Yahoo API verifier has been broken since ~2025-12: the endpoint it
posted to, /account/module/create?validateField=userId, now returns 404.
Its test panicked and, until #196, took the rest of the suite down with it.

Investigation of Yahoo's current pages shows the underlying capability is
gone, not merely relocated. Three independent flows were checked:

  - Signup, old per-field validation: endpoint is 404.
  - Signup, current page: a Next.js App Router single form POST to
    /account/create with no separate availability check; the only way to
    probe a username is to submit a full registration.
  - Forgot-password / find-username: also a single form POST guarded by a
    browser-fingerprint field, and it asks for a *recovery* email rather
    than the address under test.

There is no public path left to determine whether a Yahoo address exists,
so this follows the precedent of #113 (Gmail verifier removal).

BREAKING CHANGE: EnableAPIVerifier(YAHOO) is removed. The exported YAHOO
constant is gone and EnableAPIVerifier now returns an error for every
vendor. The smtpAPIVerifier interface and the apiVerifiers dispatch remain
as an extension point for future vendors.

Verified with go build/vet, golangci-lint (0 issues), and the full suite
(go test -race -covermode atomic): ok, 89.5% coverage, no panics. This is
the first clean run since December.

Refs #195

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

* docs: add changelog entries for the Yahoo verifier removal

Also corrects the v1.4.0 entry's link text: it read #76 while pointing at
pull/88. #88 is the Gmail/Yahoo API support PR; #76 is DisableCatchAllCheck,
already referenced correctly under v1.3.3.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

---------

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
2026-08-24 15:50:36 +08:00

9 lines
249 B
Go

package emailverifier
type smtpAPIVerifier interface {
// isSupported the specific host supports the check by api.
isSupported(host string) bool
// check must be called before isSupported == true
check(domain, username string) (*SMTP, error)
}