Commit Graph

354 Commits

Author SHA1 Message Date
David Nicol
056d4cf587 random error plugin, for (1) testing (2) providing lower QoS to
non-premium customers or something like that such as (3) annoying your
customers, if you are in a position to actually want to do that

Signed-off-by: Robert <rspier@pobox.com>
2009-02-11 23:50:03 -08:00
Hanno Hecker
e7bcc3fcf9 "chomp" DEBUG output - for logging/file
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@956 958fd67b-6ff1-0310-b445-bb7760255be9
2008-11-04 18:37:21 +00:00
John Peacock
9f59ca626f Sometimes Perl is too smart for its own good. Precedence rules sux...
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@950 958fd67b-6ff1-0310-b445-bb7760255be9
2008-10-07 13:48:45 +00:00
Matt Sergeant
858fdbc11c Fix to check all MX hosts, not just the first
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@945 958fd67b-6ff1-0310-b445-bb7760255be9
2008-09-26 17:39:42 +00:00
Radu Greab
0d96de470d Close the SSL socket created by duplicating the connection file descriptor. This allows the server to close the connection file descriptor without getting errors like:
Can't call method "close" on an undefined value at
  /usr/share/perl5/IO/Socket/SSL.pm line 780.

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@937 958fd67b-6ff1-0310-b445-bb7760255be9
2008-09-04 11:37:38 +00:00
Radu Greab
6ad7e24315 Set the Return-Path header when queuing into maildir mailboxes.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@936 958fd67b-6ff1-0310-b445-bb7760255be9
2008-08-05 09:06:07 +00:00
Ask Bjørn Hansen
3c8766f683 update documentation (issue #26)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@935 958fd67b-6ff1-0310-b445-bb7760255be9
2008-07-31 20:32:32 +00:00
Robert Spier
29ea951680 Recreate the Geo::IP object for each message. (Otherwise it will hold the underlying database file handle open, and it doesn't like when that file changes underneath it.)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@933 958fd67b-6ff1-0310-b445-bb7760255be9
2008-07-04 02:03:56 +00:00
Robert Spier
d5c81c31d8 Fix missing capture group
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@932 958fd67b-6ff1-0310-b445-bb7760255be9
2008-07-04 02:02:26 +00:00
Hanno Hecker
37e441e70e queue/maildir - multi user / multi domain support added
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@931 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-28 08:14:14 +00:00
Guy Hulbert
1d10542af0 - Fix duplication of com|net|org|biz|info - Fix broken travel (missing |)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@929 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-16 04:52:59 +00:00
Radu Greab
b03dddcb48 Send data to the remote server in large chunks.
Reduces a lot the sending time when running on slow CPUs.

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@922 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-02 16:48:20 +00:00
Radu Greab
4c93c85f55 Create async version of dns_whitelist_soft, rhsbl and uribl plugins.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@921 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-02 15:51:04 +00:00
Radu Greab
7f07f16a44 perltidy
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@920 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-02 15:41:30 +00:00
Radu Greab
d63102cd7e Add user documentation.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@919 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-02 15:41:08 +00:00
Radu Greab
98d529c596 This async plugin needs the same change as #908: make the "this connection is whitelisted note" consistent between all plugins in the distribution.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@918 958fd67b-6ff1-0310-b445-bb7760255be9
2008-06-02 15:32:39 +00:00
John Peacock
14a77718f8 Preserve connection notes as part of cloning the object (e.g. after STARTTLS). Typo noticed in plugins/tls.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@917 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-26 21:25:44 +00:00
Robert Spier
356ec2f08d standardize hostname regex. use latest list of tlds. import constants so we can syntax check
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@914 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-19 07:22:51 +00:00
Robert Spier
fed6fe0311 Hostnames come in lowercase and longer than 8 characters too.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@911 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-17 03:55:18 +00:00
Robert Spier
7169c9f0bc Revert accidental commit 909.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@910 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-17 03:54:24 +00:00
Robert Spier
6563dcc4f8 hostnames come in lower case, and might even be longer than 8 characters
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@909 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-17 03:52:00 +00:00
Ask Bjørn Hansen
b3eacea14f make the "this connection is whitelisted note" consistent between all plugins in the distribution
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@908 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-16 22:43:17 +00:00
Robert Spier
d0a8432c16 fix whitelisting support in uribl
(bug in extracting the "base" portion of the domain name.)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@906 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-15 05:16:56 +00:00
Hanno Hecker
b5d9135fb0 remove the workaround for -prefork, fixed by rev 893
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@894 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-09 17:41:59 +00:00
Matt Sergeant
e6df2f5072 Oopsie - IO::Socket::SSL required in UpgradeClientSSL for $SSL_ERROR
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@890 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-06 22:48:26 +00:00
Matt Sergeant
20fde2ef98 Don't require Danga::Socket in tls plugin
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@889 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-06 21:43:07 +00:00
Radu Greab
aa016d356e Kill circular reference.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@888 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-06 11:20:52 +00:00
Matt Sergeant
e600baeedf Fix a weird thing I spotted in the last check in.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@887 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-05 17:13:56 +00:00
Ask Bjørn Hansen
569ea2a512 s/txn/transaction/ and perltidy cleanup (Steve Kemp)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@885 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-05 17:05:38 +00:00
Matt Sergeant
f315e1c193 Make tls work on async
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@884 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-05 12:22:18 +00:00
Radu Greab
149c9c4790 Follow the logic of the non-async version and other MTAs: make first
the MX lookups and, only if they return nothing, make the A lookups.

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@880 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-01 06:18:46 +00:00
Radu Greab
79aa27f444 This async plugin doesn't need the disconnect hook.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@879 958fd67b-6ff1-0310-b445-bb7760255be9
2008-05-01 06:17:16 +00:00
Matt Sergeant
d0d7412f22 Fix auth and tls in light of globalised hooks
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@874 958fd67b-6ff1-0310-b445-bb7760255be9
2008-04-08 10:34:25 +00:00
Matt Sergeant
d078cd1fcc Async smtp-forward plugin
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@864 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-18 15:20:45 +00:00
Matt Sergeant
6f1a048cf3 Add shebang line so syntax highlighters kick in :-)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@860 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-18 15:18:19 +00:00
Matt Sergeant
640eadea50 Don't reject mail from the null sender
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@858 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-13 20:00:33 +00:00
Matt Sergeant
694b9fd148 Fix to prevent denying mail from some otherwise valid hosts
Fix to prevent run_continuation being incorrectly called
(both Radu Greab)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@857 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-13 19:59:15 +00:00
Matt Sergeant
ce5b41df9f Don't pass --fqdn to hostname if it fails
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@855 958fd67b-6ff1-0310-b445-bb7760255be9
2008-03-13 19:51:00 +00:00
Ask Bjørn Hansen
4d27319233 fix "Use of uninitialized value in pattern match" warning (Gavin Carr
and Jim Murray)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@846 958fd67b-6ff1-0310-b445-bb7760255be9
2008-02-13 08:34:18 +00:00
Hanno Hecker
2f3a326e11 Pluggable hook "noop" with example plugin (noop_counter) and doc update.
... now check_earlytalker can be expanded to VRFY and NOOP (see RFC 1854, #2.1)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@836 958fd67b-6ff1-0310-b445-bb7760255be9
2008-01-24 18:43:34 +00:00
Hanno Hecker
c2fa263fbd add help plugin, hooking the new hook_help
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@827 958fd67b-6ff1-0310-b445-bb7760255be9
2007-12-07 09:15:00 +00:00
Robert Spier
6a4b30e6f9 add new clamd_user parameter that sets the user we pass to clamd
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@817 958fd67b-6ff1-0310-b445-bb7760255be9
2007-11-17 08:22:00 +00:00
Robert Spier
70f0030539 fix typo
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@816 958fd67b-6ff1-0310-b445-bb7760255be9
2007-11-17 08:16:46 +00:00
Robert Spier
53a5fd60d9 Option to clamdscan to scan all messages, even if there are no attachments
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@815 958fd67b-6ff1-0310-b445-bb7760255be9
2007-11-17 07:55:32 +00:00
Hanno Hecker
aa8ae14367 Fix issue #23, reported w/ patch by ulr...@topfen.net
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@812 958fd67b-6ff1-0310-b445-bb7760255be9
2007-10-27 09:05:04 +00:00
Devin Carraway
85f0d91037 Merge uribl plugin
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@811 958fd67b-6ff1-0310-b445-bb7760255be9
2007-10-23 08:47:38 +00:00
Charlie Brady
1cfd62c6d3 POD update, and change variable name for recipient address ($from => $to).
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@810 958fd67b-6ff1-0310-b445-bb7760255be9
2007-10-23 01:53:29 +00:00
Hanno Hecker
7d4605fdbc remove the connection / transaction id feature for 0.42 release
- add back in after 0.42 is out? if yes: start implementing in -prefork 


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@809 958fd67b-6ff1-0310-b445-bb7760255be9
2007-10-09 12:00:43 +00:00
Hanno Hecker
275fce4764 plugins/tls: work-around for failed connections in -prefork after STARTTLS
connection (Stefan Priebe, Hanno Hecker)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@805 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-30 13:00:32 +00:00
Ask Bjørn Hansen
b141eeda37 Fix false positives in check_for_hi_virus plugin (Jerry D. Hedden)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@802 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-26 19:00:45 +00:00
Ask Bjørn Hansen
475203689d Add X-Spam-Level header in spamassassin plugin (idea from Werner Fleck)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@795 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-24 20:45:09 +00:00
Ask Bjørn Hansen
2361ca606d Cleanup spamassassin plugin code a little
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@794 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-24 20:21:24 +00:00
Ask Bjørn Hansen
c0fedf9845 Remove the auth/authnull sample plugin (there are plenty proper examples now
so we don't have to include this insecure plugin)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@793 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-22 20:23:21 +00:00
Ask Bjørn Hansen
4be7bb40e4 POD syntax cleanup (Steve Kemp)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@786 958fd67b-6ff1-0310-b445-bb7760255be9
2007-09-03 15:47:08 +00:00
Peter J. Holzer
e4cc9f7562 Added demo plugins for using the transaction and connection id.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@781 958fd67b-6ff1-0310-b445-bb7760255be9
2007-08-30 20:50:27 +00:00
Matt Sergeant
f4405d7a8c Support checking for early talkers at DATA
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@758 958fd67b-6ff1-0310-b445-bb7760255be9
2007-07-12 17:14:36 +00:00
Matt Sergeant
2d6bee1679 Fix for new IPv6 code
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@743 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-26 00:48:09 +00:00
Matt Sergeant
65631b8bb2 Fix for tests failing
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@742 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-18 03:07:53 +00:00
Matt Sergeant
ccf990e032 IPv6 support from issue #7.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@740 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-17 22:16:27 +00:00
Matt Sergeant
5c71daf274 Support custom timestamp formats
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@735 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-17 20:32:43 +00:00
Matt Sergeant
a87b5b07cc Ported to async
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@732 958fd67b-6ff1-0310-b445-bb7760255be9
2007-04-09 22:19:40 +00:00
Matt Sergeant
ce879879b5 Async versions of these plugins
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@729 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-27 21:49:03 +00:00
Ask Bjørn Hansen
5c9e3d6004 greylisting: fix db_dir configuration option so it actually works
(kitno455, issue #6)

  http://code.google.com/p/smtpd/issues/detail?id=6



git-svn-id: https://svn.perl.org/qpsmtpd/trunk@724 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-15 06:51:37 +00:00
Ask Bjørn Hansen
cc00c1d9ff rename %ARGS to %PERMITTED_ARGS
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@723 958fd67b-6ff1-0310-b445-bb7760255be9
2007-03-15 06:49:23 +00:00
Matt Sergeant
237bf904a5 Quiet warnings (Steve_p)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@714 958fd67b-6ff1-0310-b445-bb7760255be9
2007-02-13 18:29:47 +00:00
John Peacock
76d3fe44db Correct way to support check_earlytalker with PollServer.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@712 958fd67b-6ff1-0310-b445-bb7760255be9
2007-02-07 22:25:44 +00:00
John Peacock
fea300ed2e Add authenticated method to base Qpsmtpd object.
Add _auth field to PollServer.
Make sure that check_earlytalker works with PollServer.

git-svn-id: https://svn.perl.org/qpsmtpd/trunk@711 958fd67b-6ff1-0310-b445-bb7760255be9
2007-02-07 21:49:45 +00:00
Hanno Hecker
d54a960f9a undo r700 (skip plugin)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@701 958fd67b-6ff1-0310-b445-bb7760255be9
2007-01-01 12:47:46 +00:00
Hanno Hecker
39a9271213 New "skip plugin API" + example plugin skip_plugins, see perldoc
Qpsmtpd::Plugins for more info. This can be used to disable (and re-
enable) loaded plugins for the current connection.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@700 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-31 11:07:32 +00:00
Ask Bjørn Hansen
cab7466c08 Make the badmailfrom plugin support (optional) rejection messages after the
rejection pattern (Robin Hugh Johnson)



git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@697 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-18 10:45:25 +00:00
Ask Bjørn Hansen
e31d3e3e4b documentation typo in clamav, update changes file a bit
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@696 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-18 10:45:22 +00:00
Hanno Hecker
ad541f6207 Qpsmtpd::Transaction: add body_fh(), body_length() and data_size(),
depreceated body_size()


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@689 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-16 11:56:48 +00:00
Peter J. Holzer
d6c428716f Check if the domain name in a DNS response packet matches one of the
domain names we queried.
See the thread "dnsbl or spamhaus occassionally blocks wrong IP" 
starting at 14 Mar 2006 for details.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@683 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-16 09:46:12 +00:00
Hanno Hecker
8b50f9f0dd removed spamassassin doc from dnsbl
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@677 958fd67b-6ff1-0310-b445-bb7760255be9
2006-12-07 10:29:41 +00:00
Devin Carraway
b52b7b50c2 Support configured greylisting db location, and look in the distro-friendly
directory /var/lib/qpsmtpd in addition to the previous $QPHOME locations.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@672 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-05 10:38:16 +00:00
John Peacock
86e202d19e Add program to extract Postfix constants from source files and generate
Qpsmtpd::Postfix::Constants (to be used by postfix-queue).
Patch by Hanno Hecker.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@668 958fd67b-6ff1-0310-b445-bb7760255be9
2006-11-01 02:08:30 +00:00
John Peacock
bdf3f983a7 Add hardcoded mapping between postfix's cleanup errors and corresponding
Qpsmtpd::DSN value.  (David Muir Sharnoff)

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@667 958fd67b-6ff1-0310-b445-bb7760255be9
2006-10-26 15:50:02 +00:00
John Peacock
da93a9ca3b Add log socket support to syslog plugin. (Peter Eisch)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@666 958fd67b-6ff1-0310-b445-bb7760255be9
2006-10-25 17:07:27 +00:00
John Peacock
9c39c530b2 Allow override of TLS security methods using CIPHER_STRINGS passed to
IO::Socket::SSL.  Brian Szymanski <ski-qpsmtpd@allafrica.com>

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@663 958fd67b-6ff1-0310-b445-bb7760255be9
2006-10-04 13:39:27 +00:00
John Peacock
3837fabc9f Ask and ye shall receive
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@659 958fd67b-6ff1-0310-b445-bb7760255be9
2006-09-14 19:48:37 +00:00
Ask Bjørn Hansen
6ef0bf27c7 r4175@embla: ask | 2006-08-28 01:17:10 +0200
Experimental IPv6 support (forkserver only). (Mike Williams)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@657 958fd67b-6ff1-0310-b445-bb7760255be9
2006-08-27 23:17:33 +00:00
John Peacock
52f38f9459 Oops! init() gets $self and $qp before any commandline arguments
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@656 958fd67b-6ff1-0310-b445-bb7760255be9
2006-07-24 19:10:38 +00:00
Ask Bjørn Hansen
ca30545adc r3843@embla: ask | 2006-07-14 01:43:40 -0700
take out "local %ENV" from the quit_fortune plugin (Philip M. Gollucci)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@655 958fd67b-6ff1-0310-b445-bb7760255be9
2006-07-14 08:43:55 +00:00
John Peacock
de620a4c22 Handler corner case better: signed message relayed by listserv which adds
Sender: but does not resign message or strip DomainKeys-Signature.  Add
config option to prevent badly signed message from being DENY'd.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@654 958fd67b-6ff1-0310-b445-bb7760255be9
2006-07-12 18:10:00 +00:00
John Peacock
66f2f9354b Temporarily prevent domainkeys from issuing DENY.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@653 958fd67b-6ff1-0310-b445-bb7760255be9
2006-07-11 21:20:44 +00:00
John Peacock
f654defacb Add early out for messages that aren't signed at all (ignoring domains which
mandate signing by policy for the moment).
Change variables to use actual English words as names (instead of disemvoweled
or truncated variants).
Tweak Copyright notice to be current.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@652 958fd67b-6ff1-0310-b445-bb7760255be9
2006-07-11 17:41:48 +00:00
Ask Bjørn Hansen
84b7363018 r3826@embla: ask | 2006-07-09 02:34:33 -0700
Enhance the spamassassin plugin to support connecting to a remote
   spamd process (Kjetil Kjernsmo). 


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@651 958fd67b-6ff1-0310-b445-bb7760255be9
2006-07-09 09:34:51 +00:00
John Peacock
17f1617920 Working but not well testing domainkeys plugin.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@650 958fd67b-6ff1-0310-b445-bb7760255be9
2006-07-09 00:58:39 +00:00
John Peacock
401ca8ce6e More descriptive POD for tls certificate support (Guillaume Filion).
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@635 958fd67b-6ff1-0310-b445-bb7760255be9
2006-04-25 00:08:20 +00:00
John Peacock
8fcb46177b Add Qpsmtpd::Command to gather all parsing logic in one place (Hanno
Hecker)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@631 958fd67b-6ff1-0310-b445-bb7760255be9
2006-04-07 18:58:02 +00:00
John Peacock
b89a6d9e4c * plugins/queue/smtp-forward
s/register/init/ to match new plugin style (jpeacock)

* lib/Qpsmtpd/Address.pm
  t/qpsmtpd-address.t
    Ill-formed addresses should return null not partial garbage.
    Resolves https://rt.perl.org/rt3/Ticket/Display.html?id=38746
    Patch by Hanno Hecker.

* plugins/virus/clamav
    Clamav alternate config file.
    Resolves https://rt.perl.org/rt3/Ticket/Display.html?id=38736
    Patch by Robin Bowes.

* lib/Qpsmtpd/SMTP.pm
  lib/Qpsmtpd.pm
    Return multiline responses from plugins.
    Resolves https://rt.perl.org/rt3/Ticket/Display.html?id=38741
    Patch by Charlie Brady.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@630 958fd67b-6ff1-0310-b445-bb7760255be9
2006-03-20 16:47:05 +00:00
Ask Bjørn Hansen
123346f1f5 r4567@g5: ask | 2006-03-09 04:35:43 -0800
move old branches aside


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@629 958fd67b-6ff1-0310-b445-bb7760255be9
2006-03-09 12:37:25 +00:00
John Peacock
4a824a2e7d Improve support for listening to multiple ports and/or multiple IP addresses.
Document using plugins/tls to handle SMTPS (port 465).

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@625 958fd67b-6ff1-0310-b445-bb7760255be9
2006-03-01 16:44:20 +00:00
John Peacock
2c683f22ef Implement multiple IP:PORT listen in forkserver (Devin Carraway).
Add support in plugins/tls to use SMTPS (John Peacock).

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@624 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-28 21:10:11 +00:00
Devin Carraway
a07ed2ca77 Oops. Don't emit a newline between header and body when queueing over bsmtp,
because the body itself already contains one.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@623 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-28 07:04:52 +00:00
Ask Bjørn Hansen
00a73023c8 r4522@g5: ask | 2006-02-27 13:41:42 -0800
Make the clamdscan plugin temporarily deny mail if if can't talk to clamd
 (Filippo Carletti)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@621 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-27 21:43:04 +00:00
John Peacock
16b2a9c766 Correct minor cut/paste error
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@610 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-05 01:28:44 +00:00
Devin Carraway
ffd453d012 Import file & syslog log plugins. File plugins include strftime(3) formatting
and unique session naming support based roughly on patch from pjh.


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@609 958fd67b-6ff1-0310-b445-bb7760255be9
2006-02-02 08:46:49 +00:00
John Peacock
0f5d720359 Add explicit SSL_ca_file parameter to calls to create the SSL session.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@604 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-25 14:50:47 +00:00
Ask Bjørn Hansen
a67b39e282 r4215@g5: ask | 2006-01-24 23:11:01 -0800
From:   gordonr@gormand.com.au
 Subject: Re: Submitting plugins (was Re: New plugin: denybounce)
 Date: January 24, 2006 9:02:35 PM PST
 To:   ask@develooper.com
 Cc:   gavin@openfusion.com.au, qpsmtpd@perl.org
 Message-Id: <43D7066B.3050106@gormand.com.au>
 
 Ask Bjørn Hansen wrote:
 On Jan 24, 2006, at 1:08 PM, Gordon Rowell wrote:
 - License statement - either as per qpsmtpd or as per Perl or  similar open license
 No, it really should be MIT licensed ("as per qpsmtpd") to go in the  distribution.
 There are a few exceptions (only your plugins at a cursory glance),  but those are mistakes.  :-)
 
 I don't have an issue with my qpsmtpd plugins being changed to state:
 
 
 =head1 AUTHOR
 
 Copyright 2005 Gordon Rowell <gordonr@gormand.com.au>
 
 This software is free software and may be distributed under the same
 terms as qpsmtpd itself.
 
 
 Though as a distro maintainer, we do have a sizeable issue with license proliferation. It really is a bit of a nightmare when two licenses are almost, but not completely, the same.
 
 Thanks,
 
 Gordon
 
 r4216@g5:  ask | 2006-01-24 23:12:21 -0800
 merge license fix from trunk


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@603 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-25 07:12:34 +00:00
John Peacock
1d0f889d3c Support for RFC 1893 - Enhanced Mail System Status Codes
Patch by Hanno Hecker <hah@uu-x.de>.

Adds the RFC 1893 status codes to the messages which are returned to the
sending client.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@602 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-25 02:59:31 +00:00
John Peacock
5c2c8455d5 Oops! Neglected to add this. Should have been part of r599.
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@601 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-11 17:03:45 +00:00
John Peacock
d228f9c11d this patch enables the configurable flags for the postfix-queue plugin.
By default no flags are set (old behaviour). Known flags for cleanup are
FLAG_FILTER, FLAG_BCC_OK and FLAG_MAP_OK, see POD for details.

Patch by: Hanno Hecker <hah@uu-x.de>

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@600 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-11 16:48:08 +00:00
John Peacock
bfcd620a83 Fix problems with tls and relay_client.
* lib/Qpsmtpd/Connection.pm
    Abstract out parameters which can be reused (e.g. TLS) or can be
    set when creating the Connection object via start().

* plugins/tls
    Simplify code to use $self->clone() construct and also suppress
    IO::Socket::SSL debug noise, now that this is working.

* plugins/tls_cert
    New file to automate creating self-signed certificates for TLS.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@597 958fd67b-6ff1-0310-b445-bb7760255be9
2006-01-05 02:12:46 +00:00
John Peacock
c9779a3376 * plugins/virus/clamdscan
Use LOGNOTICE instead of LOGERROR when bailing early due to
    non-multipart message.

    Test clamd->ping() before scanning, and bail if it doesn't
    answer (with an appropriate error).

    Patch submitted by Dave Rolsky <autarch@urth.org>.

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@583 958fd67b-6ff1-0310-b445-bb7760255be9
2005-12-10 21:11:04 +00:00
Matt Sergeant
111afb91db No strict refs when assigning to a glob
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@551 958fd67b-6ff1-0310-b445-bb7760255be9
2005-10-07 14:30:10 +00:00
Matt Sergeant
0d8d9f03b8 Merge from trunk r540:541
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@542 958fd67b-6ff1-0310-b445-bb7760255be9
2005-08-15 18:43:19 +00:00
Devin Carraway
bde5a3fef9 Merge r534 from trunk (caution about using large wait times in
check_earlytalker)


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@535 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-30 07:22:13 +00:00
Devin Carraway
a9bb35d180 Enable svn:keywords
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@528 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-29 07:41:54 +00:00
Devin Carraway
26bc3e25b8 Import Exim BSMTP queue plugin, updated to 0.31 API
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@527 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-29 07:41:10 +00:00
John Peacock
ea28e88fa6 Extend require_resolvable_fromhost to include a configurable list of
"impossible" addresses to combat spammer forging.  (Hanno Hecker)

git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@522 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-28 20:25:54 +00:00
Matt Sergeant
820a3bcb2b return DECLINED for bad_ssl
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@516 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-18 12:51:57 +00:00
John Peacock
a69b2e1526 [merge from trunk] Missed hook to data_post to add headers
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@514 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-18 11:13:17 +00:00
Matt Sergeant
bcbe2ac25f Don't do exists() on a method call
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@506 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-14 13:25:48 +00:00
John Peacock
35f45f208b These changes to trunk were missed when 0.31 was branched.
r588@jpeacock (orig r490):  jpeacock | 2005-07-09 07:03:53 -0400
  r547@jpeacock:  jpeacock | 2005-07-02 07:20:17 -0400
  Replace pithy comment with something more neutral.
  Thanks Gordon Rowell <gordonr@gormand.com.au>
  r548@jpeacock:  jpeacock | 2005-07-02 07:24:21 -0400
  Example patterns for badrcptto plugin - Gordon Rowell <gordonr@gormand.com.au>
  r586@jpeacock:  jpeacock | 2005-07-09 06:54:47 -0400
  Don't use varlog() directly unless you are passing all parameters.
  Don't try to log() anything during loading of logging plugins.
  r587@jpeacock:  jpeacock | 2005-07-09 06:59:57 -0400
  Cannot use new-style hooking with logging plugins (yet).
 
 r590@jpeacock (orig r491):  jpeacock | 2005-07-10 06:56:55 -0400
  r589@jpeacock:  jpeacock | 2005-07-10 06:54:32 -0400
  Track hooks as array and hash.
  Re-revert changes to logging plugins to use new-style hooking.
  logging/adaptive assumed that register() has been called before hook_logging.
 


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@503 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-14 02:31:01 +00:00
Matt Sergeant
f0b31cbb9b MERGE 498:499 FROM https://svn.perl.org/qpsmtpd/trunk
Better fix for pipe being closed bug


git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@500 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-12 22:14:48 +00:00
Matt Sergeant
11da7e2778 Work around race condition (not fixed, but mostly fixed)
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@495 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-11 16:00:03 +00:00
Matt Sergeant
8a3c3c40b0 tls support
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.31@489 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-08 16:50:24 +00:00
Robert Spier
90daeb3786 r483@dog: rspier | 2005-07-06 21:17:00 -0700
The great plugin renaming in the name of inheritance and standardization commit.
 
 1. new concept of standard hook_ names.
 2. Plugin::init
 3. renamed many subroutines in plugins (and cleaned up register subs)
 4. updated README.plugins
 


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@479 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-07 04:17:39 +00:00
Ask Bjørn Hansen
4f0c4d94a1 The unrecognized_command hook now understands the DENY_DISCONNECT return
and the DENY return is deprecated.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@473 958fd67b-6ff1-0310-b445-bb7760255be9
2005-07-06 21:52:45 +00:00
John Peacock
532ce30f64 Replace $ENV{RELAYCLIENT} with $connection->relay_client in last plugin.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@453 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-28 13:35:29 +00:00
John Peacock
5b9f01b5e4 New AV plugin. Uses SOPHOS Antivirus via Sophie resident daemon.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@448 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-22 20:06:54 +00:00
John Peacock
51b035ad62 Switch sense of adaptive logging. Immediately echo log lines <= max level
and save log lines <= min level.  IIF a message is accepted for delivery,
 then echo out the saved log lines (typically just FROM and TO) with the prefix
 for multilog filtering into independent log files.

 Update POD in logging/adaptive to describe changed behavior as well as give
 an example log/run file to filter the messages accordingly.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@443 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-22 14:42:09 +00:00
John Peacock
9664eb9469 Change remaining plugins to use LOGXXXX constants instead of bare numbers.
Change plugins/dnsbl to permit AUTH'd or other relay clients even if IP
is on a blacklist.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@442 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-22 14:08:57 +00:00
Matt Sergeant
b906f67123 Ported to support Apache::Qpsmtpd
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@439 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-20 18:46:38 +00:00
Matt Sergeant
9ba9d68f72 check_loop plugin by Keith Ivey
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@438 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-20 14:56:36 +00:00
John Peacock
4360370e7e A new auth plugin by Gordon Rowell <gordonr@gormand.com.au>
Interfaces with Bruce Guenther's Credential Validation Module (CVM)

 *   plugins/auth/auth_cvm_unix_local
     Only DENY if the credentials were accepted but incorrect (bad password?)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@432 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-10 12:11:26 +00:00
John Peacock
8b50b6dd46 Two new plugins from Gordon Rowell <gordonr@gormand.com.au>
*   plugins/check_badrcptto_patterns
     Match bad RCPTO address with regex
 
 *   plugins/check_norelay
     Carve out holes from larger relay blocks


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@431 958fd67b-6ff1-0310-b445-bb7760255be9
2005-06-09 16:36:43 +00:00
John Peacock
662003437d * qpsmtpd-forkserver
Create a single Qpsmtpd::TcpServer object in the parent process and
     then rely on fork to let each child have it's own copy
     
 *   lib/Qpsmtpd/Plugin.pm
     Add new pre-connection and post-connection hooks
     
 *   README.plugins
     Document the above new hooks

 *   lib/Qpsmtpd.pm
     No longer have local value for trace_level() the first time through, which 
     was masking the global value (due to stupid search/replace error).
     Don't call log() from trace_level() since it is only ever called from
     within the varlog() sub when no logging plugin is registered.

 *   plugins/dnsbl
     Config line option to use DENY_DISCONNECT instead of DENY (since any IP
     on a blacklist should not have a chance to send anything for now).
     Add POD to document the new disconnect behavior

 *   lib/Qpsmtpd.pm
     Compatibility changes so test files continue to work
 
 *   t/Test/Qpsmtpd.pm
     Compatibility sub for core subs which call varlog() directly


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@428 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-25 20:07:58 +00:00
John Peacock
270f9c9a70 * plugins/auth/auth_ldap_bind
Correct DECLINE to DECLINED


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@405 958fd67b-6ff1-0310-b445-bb7760255be9
2005-04-12 20:48:53 +00:00
John Peacock
58ded6369d * lib/Qpsmtpd/Auth.pm
Fix some totally egregious spelling errors
 
 *  plugins/auth/auth_ldap_bind
    New plugin to authenticate against an LDAP database
    Thanks to Elliot Foster <elliotf@gratuitous.net>


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@404 958fd67b-6ff1-0310-b445-bb7760255be9
2005-04-12 19:59:52 +00:00
John Peacock
1be0263025 * plugins/logging/adaptive
Skip empty log lines in both accept and reject case


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@403 958fd67b-6ff1-0310-b445-bb7760255be9
2005-04-06 18:34:02 +00:00
Matt Sergeant
bfe7e6cb63 Flat file auth plugin
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@402 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-30 20:50:34 +00:00
John Peacock
89fd516d8e Revamp Qpsmtpd::Constants so it is possible to retrieve the text
representation from the numeric (for logging purposes).  Add new logging
plugin, logging/adaptive, which logs at different levels depending on
whether the message was accepted/rejected.
 
 *  lib/Qpsmtpd/Constants.pm
    use hashes for storing return_codes and log_levels
    export accessor methods to retrieve the text representations
 
 *  lib/Qpsmtpd.pm
    Rename log_level() to trace_level() so as to not conflict with the same
    name in Qpsmtpd::Constants.
    Call return_code() to display the text form when logging
 
 *  plugins/logging/adaptive
    Better documentation
    Support named parameters and prefix
    Call return_code() to display the text form when logging
 
 *  plugins/logging/warn
    Include POD

 *  README.logging
    First pass at documenting the logging plugin API

 *  config.sample/loglevel
    New numbering scheme to map directly to syslog levels


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@401 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-29 20:15:53 +00:00
John Peacock
e331f6b248 Add plugable logging support include sample plugin which replicates the
existing core code.  Add OK hook.

*  lib/Qpsmtpd.pm
   (init_logger): replaced with log_level()
   (load_logging): NEW - load logging plugins without calling log()
   (log_level): NEW - set/get global $LogLevel scalar
   (log): now just a wrapper for varlog(); called only by core code
   (varlog): initializes logging if not already done, calls logging plugins
     in turn and falls back to interal logging unless plugins OK or DECLINED
   (_load_plugins): only display "Loading plugin" when actually loading one
   (run_hooks): load logging plugins without calling log(); add OK hook as
     else of the DENY* case
   (spool_dir): use global $Spool_dir scalar to cache location

*  lib/Qpsmtpd/Plugin.pm
   (%hooks): add "logging" and "ok"
   (register_hook): add local _hook to object cache
   (log): call varlog() with additional parameters hook and plugin_name
     except for logging hook
   (compile): add accessor sub for local _hook scalar

*  lib/Qpsmtpd/SMTP.pm
   (mail, rcpt): change loglevel to LOGALERT instead of LOGWARN for from/to

*  qpsmtpd-forkserver
   (REAPER): use package ::log() instead of warn()
   (main): defer calling log until $plugin_loader has been initialized
   (log): call logging using the $plugin_loader object

*  plugins/logging/warn
   NEW: sample plugin which replicates the core logging functionality

*  plugins/logging/devnull
   NEW: sample plugin which logs nothing (for testing multiple logging
     plugin functionality)

*  config.sample/logging
   sample configuration file for logging plugins

*  plugins/virus/uvscan
   plugins/virus/clamav
   Increase loglevel for non-serious warnings to LOGWARN from LOGERROR


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@398 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-24 21:16:35 +00:00
Ask Bjørn Hansen
aef508cb7b Don't check the HELO host for rfc-ignorant compliance (maybe this should be an option?)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@397 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-24 19:17:46 +00:00
John Peacock
43f39a4538 * plugins/virus/clamdscan
Correctly support alternate domain socket
    Remove a tab that crept in


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@383 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-04 16:04:59 +00:00
Ask Bjørn Hansen
a44957dc86 fix thinko from the log cleanup
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@381 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-03 17:28:43 +00:00
Matt Sergeant
43aa207242 Fix all uses of warn() to be $self->log(LOGWARN, ...)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@380 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-03 02:37:04 +00:00
John Peacock
167939748c * Changes
Remember (belatedly) to add changes here

*   MANIFEST
    Add all new files to this list

*   plugins/virus/clamdscan
    New AV plugin to directly communicate with clamd daemon


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@378 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-01 20:11:09 +00:00
John Peacock
889845af24 * plugins/virus/clamav
Scan temporary file directly now that the spooled file includes the
    entire message

*   plugins/virus/bitdefender - John Peacock
    plugins/virus/hbedv - Hanno Hecker
    New AV plugins


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@377 958fd67b-6ff1-0310-b445-bb7760255be9
2005-03-01 19:55:18 +00:00
John Peacock
72eb14dcfb * plugins/virus/clamav
Reword the POD to explain exactly how to chmod the directories to get
    clamdscan to work within the spool directory (Thanks to Robin Bowes)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@373 958fd67b-6ff1-0310-b445-bb7760255be9
2005-02-25 03:06:22 +00:00
John Peacock
f95c2f8826 * plugins/virus/clamav
Improved documentation for running clamdscan correctly inside the
    qpsmtpd spool directory.

    Change file permissions to permit non-owner external process to access
    files inside spool directory


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@372 958fd67b-6ff1-0310-b445-bb7760255be9
2005-02-24 20:00:23 +00:00
John Peacock
c049917d8e * plugins/virus/clamav
Provide more documentation on using clamdscan
    Provide back_compat option to eliminate warnings in log with old ClamAV
    Use new $self->spool_dir() function instead of homebrew


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@371 958fd67b-6ff1-0310-b445-bb7760255be9
2005-02-24 16:54:02 +00:00
John Peacock
9da2fc7343 Explicitely ignore non-multipart messages for virus scanning
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@370 958fd67b-6ff1-0310-b445-bb7760255be9
2005-02-22 22:01:21 +00:00
Ask Bjørn Hansen
40a1f2fc2a add Gavin's greylisting plugin
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@365 958fd67b-6ff1-0310-b445-bb7760255be9
2005-02-15 21:42:52 +00:00
John Peacock
60cab010f8 * plugins/auth/auth_vpopmail_sql
Handle case where pw_clear_passwd doesn't exists in vpopmail database


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@360 958fd67b-6ff1-0310-b445-bb7760255be9
2005-02-10 14:33:13 +00:00
John Peacock
1d1799feb6 Correct handling for vpopmail built without clear password option
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@358 958fd67b-6ff1-0310-b445-bb7760255be9
2005-01-30 17:24:49 +00:00
John Peacock
c840a1d04f Changes by jpeacock@cpan.org (John Peacock)
o plugins/check_badmailfromto
    - New plugin in the style of check_badmailfrom, which matches a pair
      of FROM/TO and makes it seem like the recipient's address no longer
      exists (but only from the matching sender's point of view).  Useful
      for stalkers and other harassment cases.

o plugins/dns_whitelist_soft
    - New plugin to provide a DNS-based whitelist (good for distributed
      sites).

o various files
    - Replaced tab character with 8 spaces and adjusted line breaks for
      better readability.

Changes by mct@toren.net (Michael C. Toren)

o lib/Qpsmtpd/SMTP.pm

    - Assumes a MAIL FROM value of "<#@[]>" (utilized by qmail to
      indicate a null sender when generating a doublebounce message)
      is equivalent to "<>".  Previously qpsmtpd complained that the
      value could not be parsed.

    - Adds LOGIN to the default list of supported auth mechanisms.
      The documentation in Auth.pm indicated that auth-login was not
      currently supported due to lack of functionality, however I can
      confirm that LOGIN appears to work fine as tested by using msmtp
      (http://msmtp.sourceforge.net/).  Are there any indications that
      LOGIN support is actually broken in the current implementation?

    - Removes the "X-Qpsmtpd-Auth: True" header appended when a message
      has been sent by an authenticated user.  One problem with such a
      header is that it's impossible to say which SMTP hop added it,
      and it provides no information which could be used to backtrack
      the transaction.  I grepped through my mail archives a bit
      looking for how other MTAs handled the problem, and decided it
      would be best to place this information in the Received: header:

        Received: from remotehost (HELO remotehost) (192.168.42.42)
          (smtp-auth username foo, mechanism cram-md5)
          by mail.netisland.net (qpsmtpd/0.28) with ESMTP; <date>


o lib/Qpsmtpd/Auth.pm:

    - Documentation update for the arguments passed to an auth
      handler; previously the $mechanism argument was not mentioned,
      which threw off the argument offsets.

    - Documentation update for auth-login removing the warning
      that auth-login is not currently supported due to lack of
      functionality.

    - Fix to execute a generic auth hook when a more specific
      auth-$mechanism hook does not exist.  (Previously posted
      to the list last week.)

    - Upon authentication, sets $session->{_auth_user} and
      $session->{_auth_mechanism} so that SMTP.pm can include them
      in the Received: header.


o plugins/queue/qmail-queue

    - Added a timestamp and the qmail-queue qp identifier to the
      "Queued!" 250 message, for compatibility with qmail-smtpd, which
      can be very useful for tracking message delivery from machine to
      machine.  For example, the new 250 message might be:

        250 Queued! 1105927468 qp 3210 <1105927457@netisland.net>

      qmail-smtpd returns:

        250 ok 1106546213 qp 7129

      Additionally, for consistency angle brackets are placed around
      the Message-ID displayed in the 250 if they were missing in the
      message header.


o plugins/check_badmailfrom:

    - Changed the error message from "Mail from $bad not accepted
      here" to "sorry, your envelope sender is in my badmailfrom
      list", for compatibility with qmail-smtpd.  I didn't see any
      reason to share with the sender the value of $bad, especially
      for situations where the sender was rejected resulting from a
      wildcard.


o plugins/check_earlytalker:
o plugins/require_resolvable_fromhost:

    - No longer checks for earlytalkers or resolvable senders if the
      connection note "whitelistclient" is set, which is nice for
      helping backup MX hosts empty their queue faster.


o plugins/count_unrecognized_commands:

    - Return code changed from DENY_DISCONNECT, which isn't valid in
      an unrecognized_command hook, to DENY, which in this context
      drops the connection anyway.  (Previously posted to the list
      last week.)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@356 958fd67b-6ff1-0310-b445-bb7760255be9
2005-01-28 03:30:50 +00:00
Robert Spier
ed2ab5f5fd From: Nick Leverton <>
Subject: SPF plugin: using it in practice (PATCH attached for CVS)
Date: Tue, 30 Nov 2004 11:35:30 +0000
Message-ID: <20041130113530.GA31737@leverton.org>


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@355 958fd67b-6ff1-0310-b445-bb7760255be9
2004-12-02 07:26:11 +00:00