{"id":755,"date":"2015-04-27T20:43:28","date_gmt":"2015-04-28T00:43:28","guid":{"rendered":"http:\/\/blog.fritzhardy.com\/?p=755"},"modified":"2015-04-27T20:53:10","modified_gmt":"2015-04-28T00:53:10","slug":"qmail-skim","status":"publish","type":"post","link":"https:\/\/blog.fritzhardy.com\/?p=755","title":{"rendered":"Qmail-skim"},"content":{"rendered":"<p><a href=\"http:\/\/www.fritzhardy.com\/projects\/qmail-skim\">Qmail-skim<\/a> is a queue enhancement for the venerable qmail MTA.  Inserted as a replacement for qmail-queue, it allows for subjecting messages to an array of user-configurable tests including simple envelope, header, and body pattern checks, with potential rejection of offending messages at SMTP\/queue time.  Additionally, qmail-skim can determine the fate of a message based on prior envelope sender or auth-user behavior, allowing for various rate-limiting options, as well as specialized phish-handling options by integration with third-party script.<\/p>\n<p>This solution has been in use at a small-to-medium-sized MTA installation for years.  Its primary emphasis has been on inspecting outgoing mail, with its battery of &#8220;phish&#8221; tests developed in response to mail-sending patterns typical of spamming\/compromised accounts.  Production response to such signatures has included scrambling of user account passwords and automatic firewall blocks.<\/p>\n<p>I have finally (mostly) polished this up enough for some kind of release.  Full documentation at <a href=\"http:\/\/www.fritzhardy.com\/projects\/qmail-skim\">http:\/\/www.fritzhardy.com\/projects\/qmail-skim\/<\/a> and code pushed to <a href=\"https:\/\/github.com\/fritzhardy\/qmail-skim\">https:\/\/github.com\/fritzhardy\/qmail-skim<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Qmail-skim is a queue enhancement for the venerable qmail MTA. Inserted as a replacement for qmail-queue, it allows for subjecting messages to an array of user-configurable tests including simple envelope, header, and body pattern checks, with potential rejection of offending messages at SMTP\/queue time. Additionally, qmail-skim can determine the fate of a message based on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-755","post","type-post","status-publish","format-standard","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=\/wp\/v2\/posts\/755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=755"}],"version-history":[{"count":2,"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=\/wp\/v2\/posts\/755\/revisions"}],"predecessor-version":[{"id":757,"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=\/wp\/v2\/posts\/755\/revisions\/757"}],"wp:attachment":[{"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fritzhardy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}