1. INTRODUCTION --------------- spf-milter is a Milter, which works with Sendmail 8.12 and up, and provides an SPF-compliant extension to the SMTP communication between your MTA and connecting clients. See http://spf.pobox.com/ for details about SPF itself. spf-milter is written entirely in Perl, and uses the native threaded Milter model, without using a multiplexor to split threads over individual child processes. spf-milter is licensed under GPL. 2. PREREQUISITES ---------------- spf-milter requires: 1): Perl 5.8.x, or higher. 2): Perl modules: Sendmail::Milter (version 0.18) Mail::SPF::Query (at least version 1.99!) 3. INSTALLATION --------------- Since spf-milter is written in Perl, you need, for starters, Sendmail::Milter (at CPAN). The Milter API is threaded, so you need a thread-enabled Perl (compiled with -Duseithreads) as well. If you do not know whether you Perl supports threads, try and install Sendmail::Milter first. It will itself test the ithread functionality of your Perl for compatibility with Sendmail::Milter. I built and tested spf-milter under Perl, v5.8.0 built for i386-freebsd-thread-multi. Earlier versions of Perl versions may or not be suitable. A) Sendmail You must be using Sendmail 8.12.x --------------------------------- Obtain the latest Sendmail 8.12.x source release from http://www.sendmail.org. Unpack it. Add the following lines to devtools/Site/site.config.m4: APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER') APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER') This enables the Milter functionality. Now build Sendmail as usual ("sh Build" in the sendmail/ directory). Add the following lines to your Sendmail "m4" configuration file (*.mc, in the cf/cf/ directory): define(`confMILTER_LOG_LEVEL',`9')dnl INPUT_MAIL_FILTER(`spf-milter', `S=local:/var/spf-milter/spf-milter.sock, F=T, T=C:4m;S:4m;R:8m;E:10m') Adjust the MILTER_LOG_LEVEL and T timings to your liking. Now build sendmail.cf as usual ("./Build sendmail.cf" in the cf/cf/ directory). Your newly generated sendmail.cf will now contain a section that looks like this: # Milter options O Milter.LogLevel=9 O Milter.macros.connect=j, _, {daemon_name}, {if_name}, {if_addr} O Milter.macros.helo={tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer} O Milter.macros.envfrom=i, {auth_type}, {auth_authen}, {auth_ssf}, {auth_author}, {mail_mailer}, {mail_host}, {mail_addr} O Milter.macros.envrcpt={rcpt_mailer}, {rcpt_host}, {rcpt_addr} And this: ###################################################################### ###################################################################### ##### ##### MAILER DEFINITIONS ##### ###################################################################### ###################################################################### Xspf-milter, S=local:/var/spf-milter/spf-milter.sock, F=T, T=C:4m;S:4m;R:8m;E:10m Inspect your new sendmail.cf, to see whether it does indeed contain these things. B) Startup You are already ready to start spf-milter! :) Sendmail does not need to "find" the spf-milter script. You can run it from pretty much every location. The only thing sendmail needs to do, is to be able to find the local domain socket to connect to (spf-milter creates "/var/spf-milter/spf-milter.sock" per default). If you successfully followed the above steps, then your new sendmail.cf will contain the proper local socket name. Backup your old sendmail.cf. Now, stop sendmail, and copy the new sendmail.cf to its proper location. Now, start spf-milter first! Depending on where your thread-enabled Perl resides, of course, you can, in its simplest form, start spf-milter like this: /usr/local/threadedperl/bin/perl /usr/local/spf/sendmail-milter.pl milter We start spf-milter with at least one parameter, the user to run as. spf-milter expects to create/read/write its log, pid, and socket, all in /var/spf-milter/, and will itself create the directory, if need be, and set all appropriate permissions/ownerships. You cannot run spf-milter as root. If everything went okay, try 'ps ax', and your spf-milter will show up as: "spf-milter (perl)" Restart sendmail. Now you're done. :) - Mark System Administrator Asarian-host.org ------- Sender Permitted From: http://spf.pobox.com/ Archives at http://archives.listbox.com/spf-discuss/current/ Latest draft at http://spf.pobox.com/draft-mengwong-spf-02.9.4.txt Wiki: http://spfwiki.infinitepenguins.net/pmwiki.php/SenderPermittedFrom/HomePage To unsubscribe, change your address, or temporarily deactivate your subscription, please go to http://v2.listbox.com/member/?listname(_at_)½§Åv¼ð¦¾Øß´ëù1Ií-»Fqx(_dot_)com