• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

bin/H17-Dec-2013-401297

config.sample/H17-Dec-2013-7,3146,889

docs/H17-Dec-2013-2,5141,643

lib/H17-Dec-2013-6,3314,048

log/H17-Dec-2013-1,3321,023

packaging/rpm/H17-Dec-2013-892602

plugins/H03-May-2022-16,8408,735

t/H17-Dec-2013-10,0238,831

xt/H17-Dec-2013-6248

.gitignoreH A D17-Dec-2013381 2821

.perltidyrcH A D17-Dec-2013423 179

.travis.ymlH A D17-Dec-201365 76

CREDITSH A D17-Dec-20131.5 KiB3726

ChangesH A D17-Dec-201335.8 KiB1,137670

LICENSEH A D17-Dec-20131.1 KiB2016

MANIFESTH A D17-Dec-20134.6 KiB214213

MANIFEST.SKIPH A D17-Dec-2013370 3938

META.ymlH A D17-Dec-2013689 3433

Makefile.PLH A D17-Dec-20131.5 KiB5337

READMEH A D17-Dec-20135.8 KiB202127

README.pluginsH A D17-Dec-2013299 148

STATUSH A D17-Dec-20132.9 KiB8855

UPGRADING.podH A D17-Dec-20131.6 KiB4730

qpsmtpdH A D17-Dec-2013998 3915

qpsmtpd-asyncH A D17-Dec-201311.7 KiB465317

qpsmtpd-forkserverH A D17-Dec-201311 KiB390311

qpsmtpd-preforkH A D17-Dec-201322.4 KiB767505

run.forkserverH A D17-Dec-2013483 2417

run.tcpserverH A D17-Dec-2013424 2513

README

1#
2#  this file is best read with `perldoc README`
3#
4
5=head1 NAME
6
7Qpsmtpd - qmail perl simple mail transfer protocol daemon
8
9web:
10  http://smtpd.develooper.com/
11
12mailinglist:
13  qpsmtpd-subscribe@perl.org
14
15FAQ:
16  https://github.com/qpsmtpd-dev/qpsmtpd-dev/wiki/faq
17
18=head1 DESCRIPTION
19
20What is Qpsmtpd?
21
22Qpsmtpd is an extensible SMTP engine written in Perl.  No, make that
23easily extensible!  See plugins/quit_fortune for a very useful, er,
24cute example.
25
26=head2 License
27
28Qpsmtpd is licensed under the MIT License; see the LICENSE file for
29more information.
30
31=head2 What's new in this release?
32
33See the Changes file! :-)
34
35
36=head1 Installation
37
38=head2 Required Perl Modules
39
40The following Perl modules are required:
41   Net::DNS
42   MIME::Base64
43   Mail::Header (part of the MailTools distribution)
44
45If you use a version of Perl older than 5.8.0 you will also need
46   Data::Dumper
47   File::Temp
48   Time::HiRes
49
50The easiest way to install modules from CPAN is with the CPAN shell.
51Run it with
52
53  perl -MCPAN -e shell
54
55=head2 qpsmtpd installation
56
57Make a new user and a directory where you'll install qpsmtpd.  I
58usually use "smtpd" for the user and /home/smtpd/qpsmtpd/ for the
59directory.
60
61Put the files there.  If you install from git you can just do
62run the following command in the /home/smtpd/ directory.
63
64   git clone git://github.com/smtpd/qpsmtpd.git
65
66Beware that the master branch might be unstable and unsuitable for anything
67but development, so you might want to get a specific release, for
68example (after running git clone):
69
70   git checkout -b local_branch v0.84
71
72chmod o+t ~smtpd/qpsmtpd/ (or whatever directory you installed qpsmtpd
73in) to make supervise start the log process.
74
75Edit the file config/IP and put the ip address you want to use for
76qpsmtpd on the first line (or use 0 to bind to all interfaces).
77
78If you use the supervise tools, then you are practically done!
79Just symlink /home/smtpd/qpsmtpd into your /services (or /var/services
80or /var/svscan or whatever) directory.  Remember to shutdown
81qmail-smtpd if you are replacing it with qpsmtpd.
82
83If you don't use supervise, then you need to run the ./run script in
84some other way.
85
86The smtpd user needs write access to ~smtpd/qpsmtpd/tmp/ but should
87not need to write anywhere else.  This directory can be configured
88with the "spool_dir" configuration and permissions can be set with
89"spool_perms".
90
91As per version 0.25 the distributed ./run script runs tcpserver with
92the -R flag to disable identd lookups.  Remove the -R flag if that's
93not what you want.
94
95
96=head2 Configuration
97
98Configuration files can go into either /var/qmail/control or into the
99config subdirectory of the qpsmtpd installation.  Configuration should
100be compatible with qmail-smtpd making qpsmtpd a drop-in replacement.
101
102If qmail is installed in a nonstandard location you should set the
103$QMAIL environment variable to that location in your "./run" file.
104
105If there is anything missing, then please send a patch (or just
106information about what's missing) to the mailinglist or to
107ask@develooper.com.
108
109
110=head1 Better Performance
111
112For better performance we recommend using "qpsmtpd-forkserver" or
113running qpsmtpd under Apache 2.x.  If you need extremely high
114concurrency and all your plugins are compatible, you might want to try
115the "qpsmtpd-async" model.
116
117=head1 Plugins
118
119The qpsmtpd core only implements the SMTP protocol.  No useful
120function can be done by qpsmtpd without loading plugins.
121
122Plugins are loaded on startup where each of them register their
123interest in various "hooks" provided by the qpsmtpd core engine.
124
125At least one plugin MUST allow or deny the RCPT command to enable
126receiving mail.  The "rcpt_ok" is one basic plugin that does
127this.  Other plugins provide extra functionality related to this; for
128example the resolvable_fromhost plugin described above.
129
130
131=head1 Configuration files
132
133All the files used by qmail-smtpd should be supported; so see the man
134page for qmail-smtpd.  Extra files used by qpsmtpd include:
135
136=over 4
137
138=item plugins
139
140List of plugins, one per line, to be loaded in the order they
141appear in the file.  Plugins are in the plugins directory (or in
142a subdirectory of there).
143
144
145=item rhsbl_zones
146
147Right hand side blocking lists, one per line. For example:
148
149    dsn.rfc-ignorant.org does not accept bounces - http://www.rfc-ignorant.org/
150
151See http://www.rfc-ignorant.org/ for more examples.
152
153
154=item dnsbl_zones
155
156Normal ip based DNS blocking lists ("RBLs"). For example:
157
158  relays.ordb.org
159  spamsources.fabel.dk
160
161
162=item spool_dir
163
164If this file contains a directory, it will be the spool directory
165smtpd uses during the data transactions. If this file doesn't exist, it
166will default to use $ENV{HOME}/tmp/. This directory should be set with
167a mode of 700 and owned by the smtpd user.
168
169=item spool_perms
170
171The default spool permissions are 0700. If you need some other value,
172chmod the directory and set it's octal value in config/spool_perms.
173
174=item tls_before_auth
175
176If this file contains anything except a 0 on the first noncomment line, then
177AUTH will not be offered unless TLS/SSL are in place, either with STARTTLS,
178or SMTP-SSL on port 465.
179
180=item everything (?) that qmail-smtpd supports.
181
182In my test qpsmtpd installation I have a "config/me" file containing
183the hostname I use for testing qpsmtpd (so it doesn't introduce itself
184with the normal name of the server).
185
186=back
187
188
189=head1 Problems
190
191In case of problems, always check the logfile first.
192
193By default, qpsmtpd logs to log/main/current.  Qpsmtpd can log a lot of
194debug information. You can get more or less by adjusting the number in
195config/loglevel. Between 1 and 3 should give you a little. Setting it
196to 10 or higher will get lots of information in the logs.
197
198If the logfile doesn't give away the problem, then post to the
199mailinglist (subscription instructions above).  If possible, put
200the logfile on a webserver and include a reference to it in the mail.
201
202

README.plugins

1#
2# read this with 'perldoc README.plugins'  ...
3#
4
5=head1 qpsmtpd plugin system; developer documentation
6
7Plugin documentation is now in F<docs/plugins.pod>.
8
9See the examples in plugins/ and ask questions on the qpsmtpd
10mailinglist; subscribe by sending mail to qpsmtpd-subscribe@perl.org.
11
12=cut
13
14