Skip to content

Commit

Permalink
updated Changes, move items from STATUS to Issues
Browse files Browse the repository at this point in the history
and milestones @ github
  • Loading branch information
msimerson committed Sep 6, 2014
1 parent 0351ec3 commit c163a6d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 56 deletions.
22 changes: 21 additions & 1 deletion Changes
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@

0.94 ___ NN, 2014
0.94 Sep 05, 2014

Added null char in username check to auth_cvm plugin

Build updates for CentOS 6 (Robert Siddall)

SpamAssassin plugin fixes (Priyadi Nurcahyo)

Added plugins/stunnel (luzluna)

Fixed a config error in Apache/Qpsmtpd.pm (luzluna)

loadcheck: imported (Robert Siddall)

return a useful error message when temp rejecting connections (Priyadi)

smtp_forward: added Postfix XCLIENT support (Chase Venters)

smtp_forward: add the remote message id in log entry (tpoindessous)

clamdscan: added support for remote (TCP/IP) clamd (M Simerson)

Updated DMARC plugin to use Mail::DMARC

Expand Down
56 changes: 1 addition & 55 deletions STATUS
Original file line number Diff line number Diff line change
@@ -1,50 +1,17 @@

Qpsmtpd is a very good SMTP daemon for developers and hackers.

Current goals are making it easier to install, reducing code duplication,
reducing complexity, and cooperation between plugins. Anything covered
in Perl Best Practices is fair game.

Recent changes have been made towards these goals:

- plugins use is_immune and is_naughty instead of a local methods
- plugins log a single entry summarizing their disposition
- plugin logs prefixed with keywords: pass, fail, skip, error
- plugins use 'reject' and 'reject_type' settings
- plugins support deferred rejection via 'naughty' plugin
- plugins get a resolver via $self->init_resolver
- new plugins: fcrdns, dmarc, naughty, karma

An example of plugin cooperation is karma. Karma is a scorekeeper that aggregates bits of information from many plugins. Those bits alone are insufficient for acting on. Examples of such data are:

FcRDNS - whether or not hostname has Forward confirmed reverse DNS
GeoIP distance - how many km away the sender is
p0f - senders Operating System
helo - helo hostname validity

For most sites, even DNSBL, SPF, DKIM, and SpamAssassin tests alone are insufficient rejection criteria. But when these bits are combined, they can create an extremely reliable means to block spam.

Qpsmtpd - an SMTP daemon for developers and hackers

Roadmap
=======

- https://github.com/smtpd/qpsmtpd/issues

- Bugfixes - qpsmtpd is extremely stable (in production since 2001), but
there are always more things to fix.

- Add user configuration plugin infrastructure
- Add plugin API for checking if a local email address is valid

- Add API to reject individual recipients after the RCPT has been
accepted and generate individual bounce messages.

Issues
======

------ The rest of the list here might be outdated. ------
------ Patches to remove things are welcome. ------

plugin support;

allow plugins to return multiple response lines (does it have to
Expand All @@ -60,28 +27,7 @@ plugin support;

if qmail-queue can't be loaded we still return 250 ?!

Make a system for configuring the plugins per user/domain/...

support databytes per user / domain

localiphost - support foo@[a.b.c.d] addresses

Move dispatch() etc from SMTP.pm to Qpsmtpd.pm to allow other similar
protocols to use the qpsmtpd framework.



Future Ideas
============

Methods to create a bounce message easily; partly so we can accept a
mail for one user but bounce it right away for another RCPT'er.

The data_post hook should be able to put in the notes what addresses
should go through, bounce and get rejected respectively, and qpsmtpd
should just do the right thing. See also
http://nntp.perl.org/group/perl.qpsmtpd/170

David Carraway has some thoughts for "user filters"
http://nntp.perl.org/group/perl.qpsmtpd/2

0 comments on commit c163a6d

Please sign in to comment.