Permalink
Browse files

prepare for version 0.10

git-svn-id: https://svn.perl.org/qpsmtpd/branches/v010@56 958fd67b-6ff1-0310-b445-bb7760255be9
  • Loading branch information...
abh committed Sep 8, 2002
1 parent 7f5aedf commit 06ee5b636ea1baa88286db2a06d3fb5ce6583838
Showing with 109 additions and 44 deletions.
  1. +97 −34 README
  2. +9 −8 STATUS
  3. +3 −2 lib/Qpsmtpd.pm
View
131 README
@@ -1,3 +1,5 @@
+Qpsmtpd - qmail perl simple mail transfer protocol daemon
+---------------------------------------------------------
web:
http://develooper.com/code/qpsmtpd/
@@ -6,55 +8,116 @@ mailinglist:
qpsmtpd-subscribe@perl.org
----- this file needs updating for version 0.10 ! ------
+What is Qpsmtpd?
+----------------
---
---
--- version 0.10 is a new object oriented version of qpsmtpd.
---
--- it is meant to be an easily extensibly smtpd engine.
---
---
+Qpsmtpd is an extensible smtp engine written in Perl. No, make that
+easily extensible! See plugins/quit_fortune for a very useful, er,
+cute example.
----------------------------------------------------------
-Problems:
- First thing to do is to watch the log carefully. If it doesn't
- help you, or even if it does, please post to the maliinglist
- (subscription instructions above). qpsmtpd is meant to be a drop-in
- replacement for qmail-smtpd, so it should be very easy to get going.
+
+What's new in version 0.10?
+---------------------------
+
+Version 0.10 is all rearchitected, with an object oriented plugin
+infrastructure. Weeh, that sounds fancy! Of course it is keeping the
+well tested core code from version 0.0x which have had more than a
+years production usage on many sites.
+
+Noteworthy new features includes a SpamAssassin integration plugin,
+more documentation and support for arbitrarily large messages without
+exhausting memory (up to the size of whatever your file system
+supports).
+
+
+Installation
+------------
+
+Make a new user and a directory where you'll install qpsmtpd. I
+usually use "smtpd" for the user and /home/smtpd/qpsmtpd/ for the
+directory.
+
+Put the files there. If you install from CVS you can just do
+ cvs -d :pserver:anonymous@cvs.perl.org:/cvs/public co qpsmtpd
+in the /home/smtpd/ dir.
+
+Now edit the file config/IP and put the ip address you want to use for
+qpsmtpd on the first line (or use 0 to bind to all interfaces).
+
+If you use the supervise tools, then you are practically done now!
+Just symlink /home/smtpd/qpsmtpd into your /services (or /var/services
+or /var/svscan or whatever) directory. Remember to shutdown
+qmail-smtpd if you are replacing it with qpsmtpd.
+
+If you don't use supervise, then you need to run the ./run script in
+some other way when you startup.
-Configuration files:
- All configuration files goes into $DIR/config/ or /var/qmail/control/
+Configuration
+-------------
- qpsmtpd is supposed to support all the files that qmail-smtpd
- supports and use them in the same way. When you find that it is not
- the case, feel free to send a patch to the mailinglist or to
- ask@develooper.com.
+Configuration files can go into either /var/qmail/control or into the
+config subdirectory of the qpsmtpd installation. Configuration should
+be compatible with qmail-smtpd making qpsmtpd a drop-in replacement.
- Extra files you can use to configure qpsmtpd:
+If there is anything missing, then please send a patch (or just
+information about what's missing) to the mailinglist or to
+ask@develooper.com.
+
+
+Problems
+--------
+
+First, check the logfile. As default it goes into log/main/current.
+Qpsmtpd can log a lot of debug information. You can get more or less
+by adjusting $TRACE_LEVEL in lib/Qpsmtpd.pm (sorry, no easy switch for
+that yet). Something between 1 and 3 should give you just a little
+bit. If you set it to 10 or higher you will get lots of information
+in the logs.
+
+If the logfile doesn't give away the problem, then post to the
+mailinglist (subscription instructions above). If possibly then put
+the logfile on a webserver and include a reference to it in the mail.
+
+
+Extra files you can use to configure qpsmtpd:
- rhsbl_zones
+ plugins
+
+ List of plugins, one per line, to be loaded in the order they
+ appear in the file. Plugins are in the plugins directory (or in
+ a subdirectory of there).
+
+
+ rhsbl_zones
- Right hand side blocking lists, one per line. For example:
+ Right hand side blocking lists, one per line. For example:
- dsn.rfc-ignorant.org does not accept bounces - http://www.rfc-ignorant.org/
+ dsn.rfc-ignorant.org does not accept bounces - http://www.rfc-ignorant.org/
- See http://www.rfc-ignorant.org/ for more examples.
+ See http://www.rfc-ignorant.org/ for more examples.
- dnsbl_zones
+ dnsbl_zones
- Normal ip based dns blocking lists ("RBLs"). For example:
+ Normal ip based dns blocking lists ("RBLs"). For example:
- relays.ordb.org
- spamsources.fabel.dk
+ relays.ordb.org
+ spamsources.fabel.dk
- require_resolvable_fromhost
+ require_resolvable_fromhost
- If this file contains anything but a 0 on the first line,
- envelope senders will be checked against DNS. If an A or a MX
- record can't be found the mail command will return a soft
- rejection (450).
+ If this file contains anything but a 0 on the first line,
+ envelope senders will be checked against DNS. If an A or a MX
+ record can't be found the mail command will return a soft
+ rejection (450).
+
+
+ ... everything (?) that qmail-smtpd supports.
+
+ In my test qpsmtpd installation I have a "config/me" file
+ containing the hostname I use for testing qpsmtpd (so it doesn't
+ introduce itself with the normal name of the server).
+
View
17 STATUS
@@ -1,14 +1,10 @@
-things to do for v0.10
-----------------------
+Issues
+======
transaction should maybe be a part of the connection object instead
of off the main object
-get timeouts to work in "tcpserver" mode (or generally; not sure where
-it fits best)
-
-
plugin support;
support plugins for the rest of the commands.
@@ -19,14 +15,19 @@ plugin support;
plugin access to the data line by line during the DATA phase.
-
-TRACE in Constants.pm is not actually being used. Should it?
+TRACE in Constants.pm is not actually being used. Should it be?
Future Ideas
============
+Make config() better abstracted or configured (to allow configuration
+from LDAP etc).
+
+Make queue() better abstracted or configured (to allow LMTP delivery
+instead of using qmail-queue).
+
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.
View
@@ -17,7 +17,8 @@ BEGIN{$^W=0;}
use Net::DNS;
BEGIN{$^W=1;}
-$Qpsmtpd::VERSION = "0.10-dev";
+$Qpsmtpd::VERSION = "0.10";
+my $TRACE_LEVEL = 6;
# $SIG{ALRM} = sub { respond(421, "Game over pal, game over. You got a timeout; I just can't wait that long..."); exit };
@@ -65,7 +66,7 @@ sub config {
sub log {
my ($self, $trace, @log) = @_;
warn join(" ", $$, @log), "\n"
- if $trace <= 10;
+ if $trace <= $TRACE_LEVEL;
}
sub dispatch {

0 comments on commit 06ee5b6

Please sign in to comment.