Skip to main content

pyspamcop

Web crawler for finishing SpamCop.net reports automatically.

Description

pyspamcop is a web crawler for finishing SpamCop.net reports automatically.

It will use your account details to login into SpamCop web page and finish reporting your SPAM. Spamcup NG tries to be as polite as possible, introducing forced delays to not overwhelm SpamCop.net website. All reports are sent sequentially.

pyspamcop also saves data from the report sends to Spamcop. The data available are only those exposed by Spamcop itself, there is no correlation of the statistics Spamcop have and save for themselves.

pyspamcop is a rewrite from the pyspamcop project.

Introduction

  1. Create a configuration file
  2. In your favorite shell:
  spamcop

That's it! See the configuration file details.

You can also provide some of the parameters in the command line.

Usage:

  pyspamcop --help

Warnings

Some important warnings before starting using pyspamcop:

  • The program does not know where the SPAM report will be sent so it's your responsibility!
  • If the program asks Spamcop to send reports to wrong places it's your fault!
  • If the program has a bug that causes same report being sent thousand times it's your mail addresses!

Setup

pyspamcop is distributed as a regular Python module, so you can install from pypi.org repository with pip or any other program that you use to install Python modules.

Configuration file

You can also provide a configuration file to avoid having to provide the same information everytime you want to execute the program.

The program will look for a configuration file name .pyspamcop.yaml in the corresponding home directory of the user (that will dependend on the OS you're executing it). Pay attention to the dot ('.') in front of the file.

The configuration file must be written as an YAML file, with the exact properties below:

---
execution_options:
  verbosity: INFO
  database:
    enabled: true
    path: /var/spamcop/reports.db
accounts:
  Provider1:
    email: account@provider1.com
    password: FOOBAR
  Provider2:
    email: account@provider2.com
    password: FOOBAR

All those options have their corresponding command line parameter. Be sure to take care of file permissions to avoid disclosure of your SpamCop.net password!

Local database

You probably noticed the following configuration lines from the YAML:

  database:
    enabled: true
    path: /var/spamcupng/reports.db

Those lines define the configuration for a local database based on SQLite.

This database will save data related to the submitted reports and can be used to provide further details of what kind of SPAM you're getting and from.

Local database schema

---
title: Reports sent to Spamcop
---
erDiagram
    SUMMARY |o--o{ EMAIL_CHARSET : has
    SUMMARY ||--|| EMAIL_CONTENT_TYPE : has
    SUMMARY |o--o{ MAILER : has
    SUMMARY ||--|| SUMMARY_RECEIVER : has
    SUMMARY ||--|| SPAM_AGE_UNIT : has
    SUMMARY_RECEIVER ||--|| RECEIVER : relates-to
    SUMMARY {
        integer id PK
        string tracking_id UK
        integer created
        integer charset_id FK
        integer content_type_id FK
        integer age
        integer age_unit_id FK
        integer mailer_id FK
    }
    EMAIL_CHARSET {
        integer id PK
        string name
    }
    EMAIL_CONTENT_TYPE {
        integer id PK
        string name
    }
    MAILER {
        integer id PK
        string name
    }
    SUMMARY_RECEIVER {
        integer id PK
        integer summary_id FK
        integer receiver_id FK
        string report_id UK
    }
    RECEIVER {
        integer id PK
        string email UK
    }
    SPAM_AGE_UNIT {
        integer id PK
        string name UK
    }

Copyright and license

This software is copyright (c) 2026 of Alceu Rodrigues de Freitas Junior, glasswalk3r@yahoo.com.br

This file is part of pyspamcop.

pyspamcop is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

pyspamcop is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with pyspamcop. If not, see http://www.gnu.org/licenses/.

Metadata

Release files for pyspamcop 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyspamcop 0.1.1
File Size Uploaded Provenance Actions
pyspamcop-0.1.1.tar.gz 79.6 kB Without provenance Details for pyspamcop-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyspamcop 0.1.1
File Interpreter ABI Platform Actions
pyspamcop-0.1.1-py3-none-any.whl Python 3 none any Details for pyspamcop-0.1.1-py3-none-any.whl

Total release size: 108.7 kB

Release files / pyspamcop-0.1.1.tar.gz

Download URL pyspamcop-0.1.1.tar.gz
Size 79.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d20ceb3b606d98cbee7226c47f592db1f9d0a4ff97a3c7444dff3fc0e6c72549
BLAKE2b-256 checksum
How to use checksums
e98f98693bace93685bb25d3ea7320889496a80f0d62e9fbf3e9beb93dc440eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / pyspamcop-0.1.1-py3-none-any.whl

Download URL pyspamcop-0.1.1-py3-none-any.whl
Size 29.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7fcc3219b5a34a4dd5a86099248e25e96f6817ee57ecf29b2714682957987803
BLAKE2b-256 checksum
How to use checksums
fd1c3fd657bc33cc514d83ca19b8b9206e7a1955581ec1a0c7d93716b6c3d965
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for pyspamcop 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page