diff --git a/scripts/_email_exclusions.py b/scripts/_email_exclusions.py index 7d0a9db..d3b5698 100644 --- a/scripts/_email_exclusions.py +++ b/scripts/_email_exclusions.py @@ -70,11 +70,43 @@ DO_NOT_CONTACT_EMAILS: frozenset[str] = frozenset({ "dave@dataspindle.com", }) +# Defunct / legacy / satellite ISP mailbox domains. Cold-mailing these is pure +# reputation drag: the mailboxes are overwhelmingly dead (the brand was shut down +# or absorbed years ago and the addresses now hard-bounce) or the operator +# (satellite / small rural ISP) aggressively defers cold B2B mail with poor +# eventual delivery. Identified from our own Listmonk bounce table (top bounced +# recipient domains) cross-checked against ISP status. NOTE: still-active large +# consumer ISPs (comcast.net, charter.net, cox.net, centurylink.net) are +# deliberately NOT here -- their bounces were the cold-IP/no-DKIM reputation +# problem (now fixed), not dead mailboxes, and they carry real prospects. +DEAD_ISP_DOMAINS: frozenset[str] = frozenset({ + # Defunct dial-up / early-ISP brands (mail shut down or vestigial) + "earthlink.net", "peoplepc.com", "mindspring.com", "netzero.net", + "netzero.com", "juno.com", "excite.com", "lycos.com", "wmconnect.com", + "adelphia.net", "voyager.net", "core.com", "localnet.com", "pldi.net", + "ptsi.net", "cablespeed.com", + # CenturyLink / Qwest / Embarq legacy brands (migrated/abandoned) + "qwest.net", "qwestoffice.net", "embarqmail.com", "centurytel.net", + "citlink.net", "citynet.net", + # Satellite (poor cold-mail deliverability, high defer/bounce) + "hughes.net", "wildblue.net", "dishmail.net", "wildblueinternet.net", + # Altice / Optimum / Suddenlink / Cablevision family (rural, aggressive defer) + "optonline.net", "suddenlink.net", "cebridge.net", "bresnan.net", + # WOW! / Knology, Mediacom, Insight, Atlantic Broadband/Breezeline, Cable One + "wowway.com", "knology.net", "mchsi.com", "insightbb.com", "atlanticbb.net", + "breezeline.net", "cableone.net", "cableone.com", + # Small / rural regional ISPs (aggressive defer, low cold deliverability) + "windstream.net", "tds.net", "iowatelecom.net", "netins.net", "mhtc.net", + "arvig.net", "consolidated.net", "fuse.net", "ncn.net", "new.rr.com", + # Alaska regional (satellite/long-haul, poor cold deliverability) + "gci.net", "alaska.net", "acsalaska.net", "gulftel.com", +}) + # The full set of consumer domains we refuse to cold-mail. Extend here as we # discover other reputation-sensitive providers. BLOCKED_EMAIL_DOMAINS: frozenset[str] = ( YAHOO_FAMILY_DOMAINS | GOOGLE_CONSUMER_DOMAINS | MICROSOFT_CONSUMER_DOMAINS - | DO_NOT_CONTACT_DOMAINS + | DEAD_ISP_DOMAINS | DO_NOT_CONTACT_DOMAINS )