{"id":23406242,"url":"https://github.com/zozs/spam-score-analyze","last_synced_at":"2025-06-26T16:09:34.272Z","repository":{"id":75270080,"uuid":"152971772","full_name":"zozs/spam-score-analyze","owner":"zozs","description":"Analyze the consequences of a certain SpamAssassin threshold","archived":false,"fork":false,"pushed_at":"2020-08-27T07:44:40.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-26T16:07:48.385Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zozs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-14T12:32:10.000Z","updated_at":"2020-08-27T07:44:43.000Z","dependencies_parsed_at":"2023-06-05T23:30:37.783Z","dependency_job_id":null,"html_url":"https://github.com/zozs/spam-score-analyze","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zozs/spam-score-analyze","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozs%2Fspam-score-analyze","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozs%2Fspam-score-analyze/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozs%2Fspam-score-analyze/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozs%2Fspam-score-analyze/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zozs","download_url":"https://codeload.github.com/zozs/spam-score-analyze/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozs%2Fspam-score-analyze/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262099716,"owners_count":23258668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-22T13:32:54.199Z","updated_at":"2025-06-26T16:09:34.231Z","avatar_url":"https://github.com/zozs.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# spam-score-analyze\n\nAnalyses the effect of a certain SpamAssassin threshold (`required_score`), by looking at\ne-mails and prints out the number of false positives and false negatives.\n\nIt prints both total number of e-mails, and also groups them by year-month, so that you\ncan see a progression of the Bayesian spam filtering.\n\nIn addition it also analyzes log files from `/var/log/maillog` to count spams that are\ndiscarded before delivery (for example by Sieve if the SpamAssassin score is `\u003e10.0`).\n\nIt can also print the e-mail destination addresses that receives the most spam.\n\n## Configuration\n\nCurrently the paths for ham, spam, and logs need to be set inside the scripts manually.\n\n## Architecture\n\nShould be explained here :)\n\n## Example output\n\n```\n# ./log_handler.pl\n# ./procure_logs.pl\n$ ./show_stats.pl \u003c /var/www/htdocs/spamstats/spamstats.json\n\n+-----------------------------------+-------+-----+\n| Destination                       | Spam  | Ham |\n+-----------------------------------+-------+-----+\n| business@example.com              | 1     | 0   |\n| github@example.com                | 1     | 79  |\n| infozzzz99@example.com            | 1     | 0   |\n| sales@example.com                 | 1     | 0   |\n| support@example.com               | 1     | 0   |\n| marketing@example.com             | 2     | 0   |\n| admin@example.com                 | 4     | 0   |\n| 1q1w1f@example.com                | 5     | 0   |\n| info@example.com                  | 11    | 1   |\n| password@example.com              | 55    | 0   |\n| example.com@example.com           | 103   | 0   |\n| 123456@example.com                | 115   | 0   |\n| ftp@example.com                   | 120   | 0   |\n| someoneelse@example.com           | 649   | 0   |\n| someone@example.com               | 23770 | 24  |\n+-----------------------------------+-------+-----+\n+---------+---------------+---------------+----------------+----------------+-----------+----------+--------------+\n|         | True positive | True negative | False positive | False negative | Discarded | FNR      | Discard rate |\n+---------+---------------+---------------+----------------+----------------+-----------+----------+--------------+\n| 2018-05 | 107           | 124           | 1              | 42             | 0         |  28.19 % |   0.00 %     |\n| 2018-06 | 226           | 243           | 0              | 23             | 0         |   9.24 % |   0.00 %     |\n| 2018-07 | 174           | 302           | 0              | 24             | 0         |  12.12 % |   0.00 %     |\n| 2018-08 | 355           | 458           | 1              | 18             | 0         |   4.83 % |   0.00 %     |\n| 2018-09 | 98            | 464           | 0              | 20             | 0         |  16.95 % |   0.00 %     |\n| 2018-10 | 158           | 495           | 0              | 10             | 0         |   5.95 % |   0.00 %     |\n| 2018-11 | 358           | 435           | 0              | 30             | 270       |   7.73 % |  69.59 %     |\n| 2018-12 | 1746          | 479           | 0              | 28             | 1655      |   1.58 % |  93.29 %     |\n| 2019-01 | 1851          | 412           | 0              | 21             | 1765      |   1.12 % |  94.28 %     |\n| 2019-02 | 2017          | 397           | 0              | 15             | 1957      |   0.74 % |  96.31 %     |\n| 2019-03 | 3088          | 449           | 0              | 39             | 3028      |   1.25 % |  96.83 %     |\n| 2019-04 | 3333          | 301           | 0              | 27             | 3268      |   0.80 % |  97.26 %     |\n| 2019-05 | 1673          | 395           | 0              | 13             | 1580      |   0.77 % |  93.71 %     |\n| 2019-06 | 2217          | 350           | 0              | 33             | 2089      |   1.47 % |  92.84 %     |\n| 2019-07 | 2276          | 384           | 0              | 15             | 2156      |   0.65 % |  94.11 %     |\n| 2019-08 | 2396          | 444           | 0              | 14             | 2353      |   0.58 % |  97.63 %     |\n| 2019-09 | 774           | 580           | 0              | 20             | 742       |   2.52 % |  93.45 %     |\n| 2019-10 | 747           | 473           | 0              | 136            | 681       |  15.40 % |  77.12 %     |\n| 2019-11 | 593           | 384           | 0              | 161            | 521       |  21.35 % |  69.10 %     |\n| Total   | 24187         | 7569          | 2              | 689            | 22065     |   2.77 % |  88.70 %     |\n+---------+---------------+---------------+----------------+----------------+-----------+----------+--------------+\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzozs%2Fspam-score-analyze","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzozs%2Fspam-score-analyze","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzozs%2Fspam-score-analyze/lists"}