{"id":19003633,"url":"https://github.com/mpaperno/spampd","last_synced_at":"2025-04-22T18:16:05.176Z","repository":{"id":4470730,"uuid":"5609587","full_name":"mpaperno/spampd","owner":"mpaperno","description":"SpamPD - Spam Proxy Daemon.  A spam-filtering SMTP/LMTP proxy server using SpamAssassin in Perl. Since 2002.","archived":false,"fork":false,"pushed_at":"2025-02-27T14:26:01.000Z","size":918,"stargazers_count":34,"open_issues_count":7,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-29T17:35:47.300Z","etag":null,"topics":["anti-spam","mail-filter","message-scanning","perl","perl-module","postfix-helper","smtp-relay","spam","spam-filtering","spamassassin","spampd"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mpaperno.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.txt","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2012-08-30T02:37:51.000Z","updated_at":"2025-02-27T14:26:04.000Z","dependencies_parsed_at":"2024-12-25T00:32:19.568Z","dependency_job_id":null,"html_url":"https://github.com/mpaperno/spampd","commit_stats":null,"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpaperno%2Fspampd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpaperno%2Fspampd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpaperno%2Fspampd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpaperno%2Fspampd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mpaperno","download_url":"https://codeload.github.com/mpaperno/spampd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249283081,"owners_count":21243672,"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":["anti-spam","mail-filter","message-scanning","perl","perl-module","postfix-helper","smtp-relay","spam","spam-filtering","spamassassin","spampd"],"created_at":"2024-11-08T18:19:43.497Z","updated_at":"2025-04-16T22:32:22.295Z","avatar_url":"https://github.com/mpaperno.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/mpaperno/spampd?include_prereleases)](https://github.com/mpaperno/spampd/releases)\r\n[![Documentation](https://img.shields.io/badge/POD-Documentation-39457E?logo=perl)](https://github.com/mpaperno/spampd/blob/master/spampd.pod)\r\n[![GPLv3 License](https://img.shields.io/badge/license-GPLv3-blue.svg)](LICENSE.txt)\r\n\r\n# SpamPD - Spam Proxy Daemon\r\n\r\nOriginally released in May of 2002, _SpamPD_ is a program used within an e-mail delivery system to scan messages for possible Unsolicited Commercial E-mail (UCE, aka spam) content.\r\nIt uses an excellent program called \u003ca href=\"https://spamassassin.apache.org/\" target=\"_new\"\u003eSpamAssassin\u003c/a\u003e (SA) to do the actual message scanning. SpamPD acts as a transparent SMTP/LMTP proxy between\r\ntwo mail servers, and during the transaction it passes the mail through SA. If SA decides the mail could be spam, then SpamPD will ask SA to\r\nadd some headers and a report to the message indicating it's spam and why.\r\n\r\nSpamPD is written in Perl and should theoretically run on any platform supported by Perl and SpamAssassin.\r\n\r\nHere's an un-solicited comment someone sent regarding *SpamPD* performance:\r\n\r\n\u003e Just to let you know: We have the SA/spampd combo up an running in a high volume environment. With 3 KAT-B Server (4x 2,5 GHz Xeon MP\r\nwith Hyperthreading, 3 GB RAM) we handle 15.000 to 20.000 Mails/h (Hour!) with room to spare. We had some performance issues with the\r\nBayes databases but now everything runs smoothly.\r\n\r\nCheck the [Releases](https://github.com/mpaperno/spampd/releases) area for latest versions,\r\nand see the \"previous-versions\" folder for some more ancient ones. \u003cbr/\u003e\r\n(Note that the Debian package version was added to this repo as a branch, and those tags will also show up in the Releases page.)\r\n\r\nPlease read the [POD file](https://github.com/mpaperno/spampd/blob/master/spampd.pod) for full documentation of the many available options.\r\nSee the [changelog](https://github.com/mpaperno/spampd/blob/master/changelog.txt) for full version history.\r\n\r\n## Package status\r\n\r\n\u003ca href=\"https://repology.org/metapackage/spampd/versions\" target=\"_new\"\u003e\r\n    \u003cimg src=\"https://repology.org/badge/vertical-allrepos/spampd.svg?exclude_unsupported=1\u0026minversion=2.61\u0026header=Latest+release+v2.62\" alt=\"Packaging status\" align=\"right\"\u003e\r\n\u003c/a\u003e\r\n\r\n**HELP!** Debian package maintainer needed. Please see [GitHub Issue 46](https://github.com/mpaperno/spampd/issues/46).\r\n\r\nLinux packages data at right courtesy of Repology:\r\n\r\n\r\n\u003ch2\u003eUsage\u003c/h2\u003e\r\n\u003cp\u003e\u003ci\u003eSpamPD\u003c/i\u003e was initially designed as a content filter mechanism for use with the \u003ca href=\"http://www.postfix.org/\"\u003e\u003ci\u003ePostfix\u003c/i\u003e\u003c/a\u003e MTA.\r\nHowever, it has no inherent dependencies on \u003ci\u003ePostfix\u003c/i\u003e or any other MTA.\r\nSome more specific setup information is provided \u003ca href=\"https://github.com/mpaperno/spampd/blob/master/spampd.pod#installation-and-configuration\"\u003ein the included documentation\u003c/a\u003e.\u003c/p\u003e\r\n\r\n\u003ch2\u003eVersion 2 Architecture\u003c/h2\u003e\r\n\u003cp\u003eVersion 2 of \u003ci\u003eSpamPD\u003c/i\u003e is a major rewrite of the underlying methods. \u003ci\u003eSpamPD\u003c/i\u003e\r\n no longer acts as a relay server but more as a \"transparent\" proxy\r\nserver. That is, it never actually takes responsibility for the mail at\r\nany point. Instead, the origination and destination mail servers speak\r\ndirectly to each other. If a failure occurs within \u003ci\u003eSpamPD\u003c/i\u003e\r\n (or SpamAssassin) during a transaction, then the mail servers will\r\ndisconnect and the sending server is still responsible for retrying the\r\nmessage for as long as it is configured to do so. Responsibility for\r\nmail delivery always lies with the 2 mail servers, which would be \"real\"\r\n MTAs and not a 500 line Perl script :-) This removes a major problem\r\nwith version 1 of \u003ci\u003eSpamPD\u003c/i\u003e, and makes this a \u003cu\u003erecommended upgrade\u003c/u\u003e.\u003c/p\u003e\r\n\u003cp\u003eWhile this is a much safer technique than previously employed, it does remove a possible feature which some users of \u003ci\u003eSpamPD\u003c/i\u003e\r\n have implemented (sorry guys). That is redirecting spam to a spamtrap\r\naddress instead of letting the message through to the original\r\nrecipient. This is due to the fact that the recipient information is\r\npassed on to the destination server before the message data is scanned\r\nfor spam. On the other hand it presents the possibility of rejecting\r\nspam at the S/LMTP level without having to generate bounce notices and\r\nsuch.\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003ci\u003eSpamPD\u003c/i\u003e now fully supports the LMTP\r\n protocol (due to the nature of it's new transparency). Logging has been\r\n improved and is now more compatible with \u003ccode\u003espamd\u003c/code\u003e.\r\n New parameters added: --children, --local-only, --childtimeout,\r\n--satimeout, --dose, --log-rules-hit, --add-sc-header, and --hostname.\r\nThree parameters are now deprecated: --dead-letters, --heloname, and\r\n--stop-at-threshold.\u003c/p\u003e\r\n\u003cp\u003eMore details and further changes are documented in the \u003ca href=\"https://github.com/mpaperno/spampd/blob/master/changelog.txt\"\u003echange log\u003c/a\u003e.\u003c/p\u003e\r\n\r\n\u003ch2\u003eMore Information\u003c/h2\u003e\r\n\r\n\u003cp\u003eIf you aren't familiar with \u003ca href=\"http://www.SpamAssassin.org/\"\u003eSpamAssassin\u003c/a\u003e,\r\n then you should definitely start there (or end up there) first. There\r\nis a very helpful users discussion list for SA (see their site). For \u003ca href=\"http://www.postfix.org/\"\u003ePostfix\u003c/a\u003e setup, be sure to read the FILTER_README document that is included with the distribution. \u003ci\u003eSpamPD\u003c/i\u003e is meant to be used as an \"advanced content filtering\" method (some examples are included with the \u003ci\u003eSpamPD\u003c/i\u003e\r\n documentation). Postfix also has a helpful users discussion list. Make\r\nsure you do your homework before you ask other people to help you!\u003c/p\u003e\r\n\r\n\u003cp\u003eBe sure to check out the \u003ca href=\"https://github.com/mpaperno/spampd/blob/master/spampd.pod\"\u003e\u003ci\u003eSpamPD\u003c/i\u003e documentation\u003c/a\u003e, the \u003ca href=\"https://github.com/mpaperno/spampd/blob/master/changelog.txt\"\u003echange log\u003c/a\u003e, as well as comments in the \u003ca href=\"https://github.com/mpaperno/spampd/blob/master/spampd.pl\"\u003eactual code.\u003c/a\u003e\u003c/p\u003e\r\n\r\n\u003ch2\u003eCredits\u003c/h2\u003e\r\n\u003cp\u003e\u003ci\u003eSpamPD\u003c/i\u003e is written and maintained by Maxim Paperno (\u003ca href=\"https://github.com/mpaperno\"\u003ehttps://github.com/mpaperno\u003c/a\u003e).\u003c/p\u003e\r\n\u003cp\u003e\u003ci\u003eSpamPD\u003c/i\u003e contains code written by\r\nBennecode Todd (Copyright (C) 2001 Morgan Stanley Dean Witter) and is used\r\n in accordance with the GNU General Public License. The code is in the\r\nform of two Perl modules which have been included in the program. Also\r\nhis \u003ccode\u003esmtpproxy\u003c/code\u003e example program served as inspiration for this version of \u003ci\u003eSpamPD\u003c/i\u003e.\u003c/p\u003e\r\n\u003cp\u003e\u003ci\u003eSpamPD\u003c/i\u003e version 1 was based on code by Dave Carrigan named \u003ca href=\"http://www.rudedog.org/assassind/\"\u003e\u003ccode\u003eassassind\u003c/code\u003e\u003c/a\u003e. Trace amounts of his code or documentation may still remain. Thanks to him for the original inspiration and code.\u003c/p\u003e\r\n\u003cp\u003eVarious people have contributed patches, bug reports, and ideas, all\r\nof whom I would like to thank. I have tried to include credits in code\r\ncomments, documentation, and in the change log, as appropriate.\u003c/p\u003e\r\n\r\n\u003ch2\u003eCopyright, License, \u0026amp; Disclaimer\u003c/h2\u003e\r\n\u003cp\u003eCopyright Maxim Paperno; All rights reserved.\u003c/p\u003e\r\n\u003cp\u003ePortions are Copyright © 2001 Morgan Stanley Dean Witter as mentioned above in the CREDITS section.\u003c/p\u003e\r\n\u003cp\u003eThis program is free software; you can redistribute it and/or modify\r\nit under the terms of the GNU General Public License as published by the\r\n Free Software Foundation; either version 2 of the License, or (at your\r\noption) any later version.\u003c/p\u003e\r\n\u003cp\u003eThis program is distributed in the hope that it will be useful, but\r\nWITHOUT ANY WARRANTY; without even the implied warranty of\r\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\r\n Public License for more details.\u003c/p\u003e\r\n\u003cp\u003eThe GNU GPL can be found at \u003ca href=\"https://www.gnu.org/licenses/\" target=\"_blank\"\u003ehttps://www.gnu.org/licenses/\u003c/a\u003e\u003c/p\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpaperno%2Fspampd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmpaperno%2Fspampd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpaperno%2Fspampd/lists"}