Skip to content

Vercel Deployment

Full four-stage filtering. L2 anti-Microsoft Defender SafeLinks scanner uses IP-range matching instead of CF's native ASN detection — slightly lower accuracy (IP ranges need to be refreshed every few months), but good enough.

One-click deploy

Deploy with Vercel

Or paste this template repo URL into Vercel:

https://github.com/suxuemi/email-track-domain

Configuration

VariableDefaultDescription
BACKEND_HOSTcf-track.laifa.xinTracking backend hostname
BACKEND_PROTOCOLhttp:Backend protocol, colon required (http: or https:)
REDIRECT_TARGEThttps://www.google.comWhere to send rejected requests

After deploying, change them at Vercel Dashboard → Project → Settings → Environment Variables.

Custom Domain

After deployment, go to Vercel Dashboard → Project → Settings → Domains, add your domain, and follow the instructions to add a CNAME track → cname.vercel-dns.com at your DNS provider. See custom-domain.md.

Differences vs. Cloudflare Worker

CloudflareVercel
L0/L1 path filtering
L2 detection methodNative ASN 8075 (high accuracy)IP-range matching (medium)
L2 IP-range refresh needed?NoEvery 3-6 months
L3 reverse proxy
Domain flexibilityDNS must be hosted on CFAny DNS via CNAME

IP ranges live in the MICROSOFT_IPV4_RANGES constant in api/track.js; update according to the comments in shared/microsoft-ranges.js.