scott at kitterman
Mar 3, 2007, 7:07 AM
Post #2 of 3
On Saturday 03 March 2007 08:46, Roberto Alsina wrote:
> I have been working for a few weeks in writing a "new" SPF implementation
> in C.
> * libspf.org seems to be down
AFAIK, libspf is abandoned.
> * libspf2.org's bug reporting address bounces
Maintainership of libspf2 was transferred from the original author and the new
maintainer didn't stick with it very long. The original author has said he
intends to start maintaining it again, but has yet to do so.
> * RMSPF is windows-only
> * PySPF is python, and I needed C.
> So, I took PySPF 2.0.2 and started following it and writing the same things
> in C.
I'd suggest looking at 2.0.3 or what's at the cvs head (to become 2.1) in
sourceforge. Both have a number of fixes in them that should help with
passing the test suites.
> Right now, it passes over 100 tests of the official test suite (and about
> 96 of the **other** test suite) , but it still has some problems:
> * It is not completely done
> * Error handling is not complete
In pyspf there is a mode for use in my SPF validator:
In this mode a number of extra warnings or errors are raise (you can find
these in the code as they only activate when harsh=2). Unless you are
planning on using the library for validation, it isn't necessary to port
these errors to your library.
> * IPv6 support is iffy
> * No SPF records support
> * Memory handling sucks (I will rewrite every function, and this is only
> worth doing the second time ;-)
> If anyone is interested in trying it and/or helping, the code is at
> http://code.google.com/p/raspf on SVN. I will give write access to anyone
> who wants it, too.
> Best regards,
> PS: I added the authors of PySPF to the credits, since this is basically a
> translation of their code, so it's a derived work.
> The name is just temporary.
I would also encourage you to think ahead to how your library will be
integrated with various MTAs. As an example, libspf2 provides a Postfix
policy server for that purpose. If you want another Python example to work
off of, there is:
There is also a sample spf python milter that Stuart did in pymilter at
To unsubscribe, change your address, or temporarily deactivate your subscription,
please go to http://v2.listbox.com/member/?list_id=1007