Skip to content

Commit eb705d3

Browse files
jordankruegerclaude
andcommitted
Audit fixes: compound licensing, IDNA, attribution strip, drop xlsx
- Licensing: add LICENSES/ with preserved upstream texts (mailchecker MIT, fakefilter BSD 3-Clause, disposable-email-domains CC0). Rewrite LICENSE as a compound-license summary. Rewrite README licensing section. Correct sources.yaml (fakefilter was mis-labeled as MIT; it is BSD 3-Clause). - build.py: IDNA punycode normalization in normalize() so internationalized domains canonicalize before dedupe. Split output stamps: combined.txt and typos.txt carry a mixed-license header; historical-* carry pure CC0. - integrations/actionkit.md: soften claims about AK internal schema (core_blackholedhistory / subscription_status are version-specific). Expand "the Walkers" on first mention. - integrations/action-network.md: document using the self URL from _links in the sweep pattern instead of constructing /people/{id}. - Attribution: strip CREDO/Avaaz from README narrative, LICENSE, LICENSES index, and build.py stamps. Keep provenance detail in sources.yaml. - Update bio from live jordankrueger.com content. - Drop sources/original-community-list.xlsx and the openpyxl dependency (incl. workflow pip install). Pre-bake the two historical snapshots as static sources/historical-{a,b}.txt files read by build.py. - Rename data/credo.txt -> data/historical-a.txt and data/avaaz.txt -> data/historical-b.txt for consistency. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b121792 commit eb705d3

18 files changed

Lines changed: 5988 additions & 66 deletions

.github/workflows/rebuild.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ jobs:
2323
with:
2424
python-version: "3.12"
2525

26-
- name: Install dependencies
27-
run: pip install openpyxl
28-
2926
- name: Rebuild data files
3027
run: python3 scripts/build.py
3128

LICENSE

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,51 @@
1+
Progressive email suppression list — licensing summary
2+
=======================================================
3+
4+
This repository is a mixed-license compilation. Read the short version first,
5+
then the details.
6+
7+
Short version
8+
-------------
9+
- The build scripts, integration guides, this repository's documentation,
10+
and the two historical advocacy-org snapshots contributed directly to
11+
this repo are released under CC0 1.0 (public domain) — by the repository
12+
author and the original contributors' attestation.
13+
- The file `data/combined.txt` is a compilation that also includes entries
14+
pulled from upstream community lists licensed under MIT, BSD 3-Clause,
15+
and CC0. Those upstream licenses are preserved in the `LICENSES/` directory.
16+
- If you redistribute `data/combined.txt`, the cleanest posture is to carry
17+
the `LICENSES/` directory alongside it, or point consumers at the upstream
18+
sources listed in `sources.yaml`.
19+
20+
CC0 1.0 — for the portions originated or curated by this repository
21+
-------------------------------------------------------------------
122
Creative Commons Zero v1.0 Universal (CC0 1.0)
223

3-
The person who associated a work with this deed has dedicated the work to the
4-
public domain by waiving all of his or her rights to the work worldwide under
5-
copyright law, including all related and neighboring rights, to the extent
6-
allowed by law.
24+
The person who associated a work with this deed has dedicated the work to
25+
the public domain by waiving all of his or her rights to the work worldwide
26+
under copyright law, including all related and neighboring rights, to the
27+
extent allowed by law.
728

829
You can copy, modify, distribute and perform the work, even for commercial
930
purposes, all without asking permission.
1031

1132
Full text: https://creativecommons.org/publicdomain/zero/1.0/legalcode
33+
34+
Upstream portions in `data/combined.txt`
35+
----------------------------------------
36+
`data/combined.txt` folds in entries from:
37+
38+
- FGRibreau/mailchecker — MIT
39+
- 7c/fakefilter — BSD 3-Clause
40+
- disposable-email-domains/disposable-... — CC0 1.0
41+
42+
Full license texts are in the `LICENSES/` directory. See also `sources.yaml`.
43+
44+
Note on copyright in lists of domains
45+
-------------------------------------
46+
Individual domain strings are facts and are not themselves copyrightable.
47+
However, the selection and arrangement of a list — what's in, what's out,
48+
what's grouped together — can carry a compilation copyright in some
49+
jurisdictions. The upstream projects chose MIT / BSD / CC0 for their lists,
50+
and this repository preserves those choices rather than trying to re-license
51+
them.

LICENSES/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Upstream licenses
2+
3+
This directory preserves the original license text from each upstream source
4+
whose data is folded into `data/combined.txt`. See the root [LICENSE](../LICENSE)
5+
file for the overall licensing posture.
6+
7+
| File | Upstream | License |
8+
|------|----------|---------|
9+
| [mailchecker.MIT.txt](mailchecker.MIT.txt) | [FGRibreau/mailchecker](https://github.com/FGRibreau/mailchecker) | MIT |
10+
| [fakefilter.BSD-3-Clause.txt](fakefilter.BSD-3-Clause.txt) | [7c/fakefilter](https://github.com/7c/fakefilter) | BSD 3-Clause |
11+
| [disposable-email-domains.CC0-1.0.txt](disposable-email-domains.CC0-1.0.txt) | [disposable-email-domains/disposable-email-domains](https://github.com/disposable-email-domains/disposable-email-domains) | CC0 1.0 |
12+
13+
## What this means in practice
14+
15+
A list of domains isn't copyrightable at the entry level — individual
16+
facts. But the *selection and arrangement* of a list can carry a copyright
17+
interest, and the upstream projects chose MIT / BSD / CC0 licenses for their
18+
work. The safe posture: if you redistribute `combined.txt`, carry these
19+
license files with it, or at least point readers to the upstream sources.
20+
21+
The two historical snapshots contributed directly to this repo are
22+
released under CC0 by their contributors' attestation — see
23+
[sources.yaml](../sources.yaml) for per-source provenance.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Upstream project: disposable-email-domains/disposable-email-domains
2+
Upstream URL: https://github.com/disposable-email-domains/disposable-email-domains
3+
License: CC0 1.0 Universal (Public Domain Dedication)
4+
License source: https://raw.githubusercontent.com/disposable-email-domains/disposable-email-domains/main/LICENSE.txt
5+
6+
-------------------------------------------------------------------------------
7+
8+
CC0 1.0 Universal (CC0 1.0)
9+
Public Domain Dedication
10+
11+
No Copyright
12+
13+
The person who associated a work with this deed has dedicated
14+
the work to the public domain by waiving all of his or her rights
15+
to the work worldwide under copyright law, including all related
16+
and neighboring rights, to the extent allowed by law.
17+
18+
You can copy, modify, distribute and perform the work, even
19+
for commercial purposes, all without asking permission.
20+
21+
Details: https://creativecommons.org/publicdomain/zero/1.0/legalcode
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Upstream project: 7c/fakefilter
2+
Upstream URL: https://github.com/7c/fakefilter
3+
License: BSD 3-Clause
4+
License source: https://raw.githubusercontent.com/7c/fakefilter/main/LICENSE.md
5+
6+
-------------------------------------------------------------------------------
7+
8+
BSD 3-Clause License
9+
10+
Copyright (c) 2022, 7c
11+
All rights reserved.
12+
13+
Redistribution and use in source and binary forms, with or without
14+
modification, are permitted provided that the following conditions are met:
15+
16+
1. Redistributions of source code must retain the above copyright notice, this
17+
list of conditions and the following disclaimer.
18+
19+
2. Redistributions in binary form must reproduce the above copyright notice,
20+
this list of conditions and the following disclaimer in the documentation
21+
and/or other materials provided with the distribution.
22+
23+
3. Neither the name of the copyright holder nor the names of its
24+
contributors may be used to endorse or promote products derived from
25+
this software without specific prior written permission.
26+
27+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
31+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
33+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
34+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
35+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

LICENSES/mailchecker.MIT.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Upstream project: FGRibreau/mailchecker
2+
Upstream URL: https://github.com/FGRibreau/mailchecker
3+
License: MIT
4+
License source: https://raw.githubusercontent.com/FGRibreau/mailchecker/master/LICENSE
5+
6+
-------------------------------------------------------------------------------
7+
8+
MIT License
9+
10+
Copyright (c) 2013 Francois-Guillaume Ribreau
11+
12+
Permission is hereby granted, free of charge, to any person
13+
obtaining a copy of this software and associated documentation
14+
files (the "Software"), to deal in the Software without
15+
restriction, including without limitation the rights to use,
16+
copy, modify, merge, publish, distribute, sublicense, and/or sell
17+
copies of the Software, and to permit persons to whom the
18+
Software is furnished to do so, subject to the following
19+
conditions:
20+
21+
The above copyright notice and this permission notice shall be
22+
included in all copies or substantial portions of the Software.
23+
24+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
26+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
28+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
29+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
30+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
31+
OTHER DEALINGS IN THE SOFTWARE.

README.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ It's purely defensive. The list exists so you can *not* send mail to these domai
1414

1515
## Who put this together
1616

17-
Curated by [Jordan Krueger](https://jordankrueger.com)formerly at CREDO Action (the progressive advocacy arm of the CREDO brand, defunct as of January 2020), where I helped build the internal exclude list this repo is partly based on. Also one of the people who sketched out the "Blackhole Domains" feature in ActionKit back in the day. Now running [CampaignHelp](https://campaign.help), consulting for progressive advocacy orgs on IT and operations.
17+
Curated by [Jordan Krueger](https://jordankrueger.com)operations consultant for progressive nonprofits and advocacy orgs, running [CampaignHelp](https://campaign.help). Nearly two decades in the progressive movement, and one of the people who sketched out the "Blackhole Domains" feature in ActionKit back in the day.
1818

19-
Contributing sources are credited in [`sources.yaml`](sources.yaml) — Avaaz, the CREDO Action historical snapshot, and the big community disposable-email repos. Full attribution preserved.
19+
The list draws on two progressive advocacy orgs' historical internal exclude lists (shared years ago through a community spreadsheet), plus the big community-maintained disposable-email repos. Per-source provenance and licensing is in [`sources.yaml`](sources.yaml).
2020

2121
## What's in the list
2222

@@ -25,8 +25,8 @@ Four files live in `data/`:
2525
| File | Size | What it is |
2626
|------|------|------------|
2727
| `combined.txt` | ~66k | The one most people want. Everything below, deduped. |
28-
| `credo.txt` | ~1.2k | The CREDO Action internal list (historical snapshot, circa 2019). |
29-
| `avaaz.txt` | ~4.4k | Avaaz's internal list (historical snapshot, heavily typo-derived). |
28+
| `historical-a.txt` | ~1.2k | Historical snapshot of an internal exclude list from a progressive advocacy org (circa 2019). |
29+
| `historical-b.txt` | ~4.4k | Historical snapshot of an internal exclude list from a second progressive advocacy org, heavily typo-derived. |
3030
| `typos.txt` | ~3.2k | Subset of combined that looks like typos of Gmail/Yahoo/Hotmail/iCloud/AOL/Outlook across TLDs. |
3131

3232
All files are one-domain-per-line plain text, with a comment header.
@@ -61,11 +61,18 @@ If your org maintains an internal list you'd like to fold in, open an issue or P
6161

6262
## Licensing
6363

64-
Released under [CC0 1.0](LICENSE) — public domain, no attribution required. Use it however helps your mission.
64+
Mixed-license compilation. Short version:
65+
66+
- **This repository's original work** — build scripts, integration guides, docs, and the two historical snapshots contributed directly to this repo — is [CC0 1.0](LICENSE) (public domain, no attribution required).
67+
- **`data/combined.txt`** also folds in upstream community lists licensed under MIT (mailchecker), BSD 3-Clause (fakefilter), and CC0 (disposable-email-domains). Their original license texts are preserved in [`LICENSES/`](LICENSES/).
68+
69+
If you redistribute `combined.txt`, carry the `LICENSES/` directory alongside it (or point consumers at the upstream sources in [`sources.yaml`](sources.yaml)).
70+
71+
Individual domain strings are facts and aren't copyrightable on their own, but the *selection and arrangement* of a list can be — which is why we preserve each upstream's license rather than relicensing under CC0.
6572

6673
## How the list is built
6774

68-
A [GitHub Action](.github/workflows/rebuild.yml) runs `scripts/build.py` nightly. The script reads local snapshots (from `sources/`) and fetches upstream community lists, normalizes every entry (lowercase, strip, validate), deduplicates, and writes the output files. If an upstream source is unavailable, the build soft-fails for that source and continues — the list never goes dark because one upstream went down.
75+
A [GitHub Action](.github/workflows/rebuild.yml) runs `scripts/build.py` nightly. The script reads the local historical snapshots (`sources/historical-a.txt`, `sources/historical-b.txt`) and fetches upstream community lists, normalizes every entry (lowercase, strip, punycode for IDNs, validate), deduplicates, and writes the output files. If an upstream source is unavailable, the build soft-fails for that source and continues — the list never goes dark because one upstream went down.
6976

7077
To rebuild locally:
7178

@@ -74,7 +81,7 @@ python3 scripts/build.py # fetches upstream
7481
python3 scripts/build.py --no-fetch # uses local snapshots only
7582
```
7683

77-
Requires `openpyxl` (`pip install openpyxl`).
84+
No dependencies — pure Python stdlib.
7885

7986
## Questions and known limits
8087

data/combined.txt

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# progressive-email-suppression — generated 2026-04-24
22
# Source: https://github.com/jordankrueger/progressive-email-suppression
3-
# License: CC0 1.0 (public domain)
4-
# 66113 domains (CREDO + Avaaz + upstream community lists)
3+
# License: mixed — see LICENSE and LICENSES/ in the source repo.
4+
# Compilation: CC0 1.0 where permissible; portions from
5+
# mailchecker (MIT), fakefilter (BSD 3-Clause), disposable-email-domains (CC0).
6+
# 66158 domains (two progressive advocacy orgs' historical lists + upstream community lists)
57
0-00.usa.cc
68
0-30-24.com
79
0-attorney.com
@@ -3787,6 +3789,7 @@ abbeyrose.info
37873789
abboudsh.site
37883790
abbuzz.com
37893791
abc-payday-loans.co.uk
3792+
abc.xn--d-fca6pd98f
37903793
abc.yopmail.com
37913794
abc1.ch
37923795
abc1918.xyz
@@ -6117,6 +6120,7 @@ aol.pm
61176120
aol.vc
61186121
aol.vo.uk
61196122
aol.vom
6123+
aol.xn--com-klae46h
61206124
aol.xom
61216125
aol1.com
61226126
aola.com
@@ -14749,6 +14753,7 @@ crystempens.site
1474914753
crystle.club
1475014754
cs-murzyn.pl
1475114755
cs.email
14756+
cs.xn--com1h-5qag41l
1475214757
cs4h4nbou3xtbsn.cf
1475314758
cs4h4nbou3xtbsn.ga
1475414759
cs4h4nbou3xtbsn.gq
@@ -24409,6 +24414,7 @@ gmahil.com
2440924414
gmai.cm
2441024415
gmai.co
2441124416
gmai.com
24417+
gmai.xn--et-hea9qe46h
2441224418
gmai1.kr
2441324419
gmai8l.com
2441424420
gmai9l.com
@@ -24518,6 +24524,16 @@ gmail.spymail.one
2451824524
gmail.uncc.edu
2451924525
gmail.vo.uk
2452024526
gmail.vom
24527+
gmail.xn--c2-piad98f
24528+
gmail.xn--com-1ea8zf1507c
24529+
gmail.xn--com-kha8of93j
24530+
gmail.xn--com-klae46h
24531+
gmail.xn--com-leaf27abfc16oda
24532+
gmail.xn--com-tea80af1507c
24533+
gmail.xn--com-tea80af93j
24534+
gmail.xn--com1-7ea4duvbf6201f7kb
24535+
gmail.xn--como-doaf1507c
24536+
gmail.xn--om-mda9ue46h
2452124537
gmail.xo.uk
2452224538
gmail.xom
2452324539
gmail.yopmail.fr
@@ -27724,6 +27740,8 @@ hotmail.vom
2772427740
hotmail.vom.ar
2772527741
hotmail.vom.br
2772627742
hotmail.work
27743+
hotmail.xn--co-yea9oe46h
27744+
hotmail.xn--com-jga3tf93j
2772727745
hotmail.xom
2772827746
hotmail.xom.ar
2772927747
hotmail.xom.br
@@ -52602,6 +52620,7 @@ skdl.de
5260252620
skedware.com
5260352621
skeefmail.com
5260452622
skeet.software
52623+
skewiswines.xn--com...-1ia35bfa
5260552624
skg3qvpntq.cf
5260652625
skg3qvpntq.ga
5260752626
skg3qvpntq.ml
@@ -61366,6 +61385,7 @@ wanadoo.fr.fr
6136661385
wanadoo.frr
6136761386
wanadoo.rf
6136861387
wanadoo.se
61388+
wanadoo.xn--fr2-jlae0609b
6136961389
wanadooo.es
6137061390
wanadooo.fr
6137161391
wanadoux.fr
@@ -63372,11 +63392,16 @@ xmule.gq
6337263392
xmule.ml
6337363393
xmuss.com
6337463394
xmxry.anonbox.net
63395+
xn--...eb-5qad62h737r.de
63396+
xn--2iol-9naf93j.it
6337563397
xn--42c9bsq2d4f7a2a.site
6337663398
xn--4dbceig1b7e.com
6337763399
xn--53h1310o.ws
6337863400
xn--80aabqk5atp.com
6337963401
xn--9kq967o.com
63402+
xn--a3l-ilae46h.com
63403+
xn--ao-jea9qe46h.com
63404+
xn--ao-yea9oe46h.com
6338063405
xn--aufsteckbrsten-kaufen-hic.de
6338163406
xn--b-dga.vn
6338263407
xn--b1accdn5bheqm.site
@@ -63387,25 +63412,45 @@ xn--bei.ml
6338763412
xn--bei.tk
6338863413
xn--bluewn-7va.cf
6338963414
xn--d-bga.net
63415+
xn--g...14ail-e2ah5157g.com
63416+
xn--gail-bha70ag41l.com
63417+
xn--gma-mfa3xf93j.com
63418+
xn--gmai-eha70ag41l.cpm
63419+
xn--gmai...-vwaf87jz71s.com
63420+
xn--gmail-3fa9ozlha5fx3d.com
63421+
xn--gmaio-6qag4705d.com
6339063422
xn--gmal-spa.cam
6339163423
xn--gmil-1na.com
63424+
xn--gmil-rfa37aga4705dtbb.govs
63425+
xn--gmx-yea8zf1507c.net
63426+
xn--hotmai-8ja50bia46o.com
6339263427
xn--hotmal-fwa.com
63428+
xn--htmail-3ja50bia4601f.com
6339363429
xn--iloveand-5z9m0a.gq
6339463430
xn--j6h.ml
6339563431
xn--kabeldurchfhrung-tzb.info
63432+
xn--mail-4ea4duvag67jz71s.it
63433+
xn--mail-4fa55aga2405d.com
6339663434
xn--mgbgvi3fi.com
6339763435
xn--mll-hoa.email
6339863436
xn--mllemail-65a.com
6339963437
xn--mllmail-n2a.com
6340063438
xn--namnh-7ya4834c.net
6340163439
xn--odszkodowania-usugi-lgd.waw.pl
6340263440
xn--oi-jia8q.vn
63441+
xn--ox-mda9ue46h.net
6340363442
xn--qei8618m9qa.ws
6340463443
xn--sd-pla.elk.pl
63444+
xn--t-online-boa35bka41s.de
63445+
xn--veri...oon-94ai.net
6340563446
xn--wkr.cf
6340663447
xn--wkr.gq
6340763448
xn--yaho-nqa.com
6340863449
xn--yaho-sqa.com
63450+
xn--yaho2-6qag41l.comvvv
63451+
xn--yahoo-2fa86bha3303e.com
63452+
xn--yahoo-2ka8vh3303e.com
63453+
xn--yahoo-oia65aha98m.com
6340963454
xn--yhoo-0na.com
6341063455
xn--z8hxwp135i.ws
6341163456
xne2jaw.pl
@@ -64208,6 +64253,8 @@ yahoo.vom.hk
6420864253
yahoo.vom.mx
6420964254
yahoo.vom.sg
6421064255
yahoo.vom.tw
64256+
yahoo.xn--co-yea9oe46h
64257+
yahoo.xn--com...r-9ja80cga
6421164258
yahoo.xo.uk
6421264259
yahoo.xom
6421364260
yahoo.xom.ar

0 commit comments

Comments
 (0)