Skip to content

feat!: remove non-functional Yahoo API verifier - #198

Merged
NeoCN merged 2 commits into
AfterShip:mainfrom
NeoCN:remove/yahoo-api-verifier
Aug 24, 2026
Merged

feat!: remove non-functional Yahoo API verifier#198
NeoCN merged 2 commits into
AfterShip:mainfrom
NeoCN:remove/yahoo-api-verifier

Conversation

@NeoCN

@NeoCN NeoCN commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Removes the Yahoo API verifier, which has been non-functional since ~December 2025.
Follows the precedent of #113 (Gmail verifier removal).

Closes #195.

Why

The endpoint the verifier posts to — /account/module/create?validateField=userId — now
returns 404. Before #196 its test also panicked and took the rest of the suite down with
it.

I checked whether it could simply be repointed at a current endpoint. It can't — Yahoo has
removed the "does this address exist" capability from every public flow, not just moved it.
Details and evidence are in #195; in short:

  • Signup, old validation endpoint: 404.
  • Signup, current page: a Next.js single-form POST to /account/create with a
    browser-fp-data fingerprint field and no separate availability check (verified across all
    17 page chunks — no validate REST path, no server-action IDs). The only way to probe a
    username is to submit a full registration.
  • Forgot-password / find-username: same single-form-POST + fingerprint pattern, and it
    asks for a recovery email rather than the address under test.

What changes

deleted smtp_by_api_yahoo.go, smtp_by_api_yahoo_test.go
deleted TestCheckSMTPOK_ByApi (Yahoo-only) in smtp_test.go
removed exported YAHOO constant; the case YAHOO in EnableAPIVerifier; the now-unused net/http import
kept the smtpAPIVerifier interface, the apiVerifiers map, and the dispatch in smtp.go — as an extension point for future vendors

TestCheckSMTPUnSupportedVendor stays and still passes.

Breaking change

EnableAPIVerifier(YAHOO) no longer works. The exported YAHOO constant is removed, and
EnableAPIVerifier now returns an error for every vendor (there are no built-in vendors left).
Callers using it should drop the call; addresses at Yahoo domains fall through to the normal
SMTP path, same as any other domain.

Verification

go build ./..., go vet ./..., golangci-lint run ./... (0 issues), and the full suite
with the same flags CI uses (go test -race -covermode atomic ./...):

ok  github.com/AfterShip/email-verifier  21.9s  coverage: 89.5% of statements

No panics, no failures — the first clean suite run since 2025-12-09.

This also unblocks other PRs (e.g. #188) that have been carrying a red check unrelated to their
own changes.

/cc @git-hulk — this removes a public API surface (EnableAPIVerifier(YAHOO)), so flagging for
a maintainer decision.

🤖 Generated with Claude Code

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 AfterShip#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 AfterShip#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 AfterShip#195

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@NeoCN
NeoCN requested a review from mzcaptainyang August 24, 2026 07:31
Also corrects the v1.4.0 entry's link text: it read AfterShip#76 while pointing at
pull/88. AfterShip#88 is the Gmail/Yahoo API support PR; AfterShip#76 is DisableCatchAllCheck,
already referenced correctly under v1.3.3.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@NeoCN
NeoCN requested a review from hodge1997 August 24, 2026 07:44
@NeoCN
NeoCN merged commit 64c117e into AfterShip:main Aug 24, 2026
1 check passed
NeoCN added a commit that referenced this pull request Aug 24, 2026
Resolves conflicts in verifier.go introduced by #198 (Yahoo API verifier
removal):

- imports: keep "net" (needed for *net.Resolver), drop "net/http" which
  became unused once the YAHOO case left EnableAPIVerifier.
- Verifier struct: take main's updated apiVerifiers comment and keep this
  branch's new resolver field.

Verified: go build, go vet, golangci-lint (0 issues), and the full suite
(go test -race -covermode atomic) pass -- ok, 89.4% coverage.
@NeoCN
NeoCN deleted the remove/yahoo-api-verifier branch August 24, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Yahoo API verifier is non-functional: signup validate endpoint returns 404

3 participants