Commit Graph

44 Commits

Author SHA1 Message Date
Matt Simerson
f9d84d94c7 Add Postfix XCLIENT support to smtp-forward plugin
manually merged in PR #2 from cventers

XCLIENT support allows Qpsmtpd to forward client information, such as
the IP address and HELO information, to Postfix such that it can use
that information in access control decisions and logging.

XCLIENT is documented here: http://www.postfix.org/XCLIENT_README.html

This patch adds a "xclient" argument to smtp-forward which enables the
use of the XCLIENT verb if it is advertised by the server smtp-forward
is delivering mail to.
2014-02-13 12:53:33 -08:00
tpoindessous
9f404f52bf Add the message id in log
There is no message id in logfile so it's difficult to debug a message sent through qpsmtpd.
2014-01-24 15:11:39 +01:00
Matt Simerson
75a3e4baae find plugins -type f -exec perltidy -b {} \; 2013-08-05 15:05:15 -07:00
Matt Simerson
e69893a961 qmail-queue: a few tweaks and a lot of whitespace 2013-08-05 15:01:50 -07:00
Ask Bjørn Hansen
a23d4b3da9 Fix 01-syntax test failures
Exclude some tests with dependencies.

Remove -T from perl line in plugins
This makes it harder to test with PERL5LIB/perlbrew etc
2012-04-29 01:36:01 -07:00
Matt Simerson
dbaa9dbd6c POD corrections, additional tests, plugin consistency
on files in plugins dir:
  fixed a number of POD errors

  formatted some # comments into POD

  removed bare 1;  (these are plugins, not perl modules)
    most instances of this were copy/pasted from a previous plugin that had it

  removed instances of # vim ts=N ...
    they weren't consistent, many didn't match .perltidyrc

  on modules that failed perl -c tests, added 'use Qpsmtpd::Constants;'

Conflicts:

	plugins/async/check_earlytalker
	plugins/async/dns_whitelist_soft
	plugins/async/dnsbl
	plugins/async/queue/smtp-forward
	plugins/async/require_resolvable_fromhost
	plugins/async/rhsbl
	plugins/async/uribl
	plugins/auth/auth_checkpassword
	plugins/auth/auth_cvm_unix_local
	plugins/auth/auth_flat_file
	plugins/auth/auth_ldap_bind
	plugins/auth/auth_vpopmail
	plugins/auth/auth_vpopmail_sql
	plugins/auth/authdeny
	plugins/check_badmailfromto
	plugins/check_badrcptto_patterns
	plugins/check_bogus_bounce
	plugins/check_earlytalker
	plugins/check_norelay
	plugins/check_spamhelo
	plugins/connection_time
	plugins/dns_whitelist_soft
	plugins/dnsbl
	plugins/domainkeys
	plugins/greylisting
	plugins/hosts_allow
	plugins/http_config
	plugins/logging/adaptive
	plugins/logging/apache
	plugins/logging/connection_id
	plugins/logging/transaction_id
	plugins/logging/warn
	plugins/milter
	plugins/queue/exim-bsmtp
	plugins/queue/maildir
	plugins/queue/postfix-queue
	plugins/queue/smtp-forward
	plugins/quit_fortune
	plugins/random_error
	plugins/rcpt_map
	plugins/rcpt_regexp
	plugins/relay_only
	plugins/require_resolvable_fromhost
	plugins/rhsbl
	plugins/sender_permitted_from
	plugins/spamassassin
	plugins/tls
	plugins/tls_cert
	plugins/uribl
	plugins/virus/aveclient
	plugins/virus/bitdefender
	plugins/virus/clamav
	plugins/virus/clamdscan
	plugins/virus/hbedv
	plugins/virus/kavscanner
	plugins/virus/klez_filter
	plugins/virus/sophie
	plugins/virus/uvscan
2012-04-29 00:00:10 -07:00
Robert
61de599c1b Normalize #! lines on all plugins
find . -type f | xargs -n1 perl -pi.bak -0777 -e '$want = "#!perl -Tw"; s/\A#!.*\n/$want\n/; s/\A([^#])/$want\n\1/s'
2012-04-28 20:41:31 -07:00
jaredj
295474503f Add support for multiple postfix cleanup sockets
The current postfix-queue plugin allows the administrator to set a
single path to a local postfix cleanup socket file from the plugin
'command line'.  This adds a 'cleanup_sockets' configuration directive
that can contain a list of paths as well as host/port combinations
pointing to postfix cleanup services, which will be tried in the order
that they appear.  Not yet tested.
2010-09-15 14:32:54 +08:00
Matt Simerson
5f81fd7925 remove vestiges of a bygone RCS 2010-05-09 23:22:13 -07:00
Devin Carraway
3889821d16 Use BSMTP response code; misc cleanups
Exim's BSMTP interface will indicate the SMTP response to the exchange;
actually use it rather than assuming all errors are 400-class soft ones.

Tolerate $transaction->header returning undef (since it evidently can under
some conditions).

Convert a few errant tabs to spaces.

Fix vi modeline.

Signed-off-by: Robert <rspier@pobox.com>
2009-12-23 00:02:04 -08:00
Hinrik Örn Sigurðsson
a5ecd41e72 Allow hyphens in the 1st argument to queue/maildir
This is to allow some perfectly reasonable path names like
/var/spool/qpsmtpd-maildir, etc.
2009-09-15 17:24:34 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
3757913d54 Remove extraneous filehandling twiddling from qmail-queue that could cause weirdness if the exec failed.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@351 958fd67b-6ff1-0310-b445-bb7760255be9
2004-11-27 17:54:46 +00:00
Robert Spier
3341a5b4ab emacsisms, more timeouts
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@350 958fd67b-6ff1-0310-b445-bb7760255be9
2004-11-27 07:08:46 +00:00
Ask Bjørn Hansen
e27534048c Improve error messages from the Postfix module (Erik I. Bols�,
<knan at mo.himolde.no>)

make the maildir plugin record who the message was to (needs some improvements
still)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@277 958fd67b-6ff1-0310-b445-bb7760255be9
2004-07-19 11:08:15 +00:00
Robert Spier
658d3bb555 From: John Peacock <jpeacock@rowman.com>
To: qpsmtpd@perl.org
Subject: [PATCH] queue/smtp-forward doesn't use correct HELO string
Message-ID: <20040714143007.31047.qmail@onion.perl.org>
Date: Wed, 14 Jul 2004 10:30:24 -0400

The current version of Net::SMTP doesn't make any attempt to determine
the hostname of the current computer (not that I blame Graham for
that), so that all e-mails are sent out as from
"localhost.localdomain" unless an explicit Hello string is provided.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@266 958fd67b-6ff1-0310-b445-bb7760255be9
2004-07-16 05:03:25 +00:00
Matt Sergeant
8c32a22d27 Error checking
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@243 958fd67b-6ff1-0310-b445-bb7760255be9
2004-06-11 20:00:15 +00:00
Ask Bjørn Hansen
76e1119a5e loglevel change
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@234 958fd67b-6ff1-0310-b445-bb7760255be9
2004-06-05 10:07:03 +00:00
Ask Bjørn Hansen
d1599b3aaf maildir queue plugin
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@232 958fd67b-6ff1-0310-b445-bb7760255be9
2004-05-24 11:36:04 +00:00
Matt Sergeant
9c700b18e1 New for 0.28: Log levels and $Include for config/plugins
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@217 958fd67b-6ff1-0310-b445-bb7760255be9
2004-03-05 12:46:24 +00:00
Ask Bjørn Hansen
5abf363c34 Added Postfix queue plugin thanks to Peter J Holzer!
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@205 958fd67b-6ff1-0310-b445-bb7760255be9
2004-02-19 10:55:36 +00:00
Matt Sergeant
38317f082e Use POSIX::dup2() instead of open() with <& since I found the latter failed
regularly for me - POSIX::dup2() was just plain more reliable. Odd, I know.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@176 958fd67b-6ff1-0310-b445-bb7760255be9
2003-10-09 17:21:49 +00:00
Ask Bjørn Hansen
53efac2e14 Use $ENV{QMAIL} to override /var/qmail for where to find the
control/ directory.

  Enable "check_earlytalker" in the default plugins config


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@168 958fd67b-6ff1-0310-b445-bb7760255be9
2003-08-30 15:14:39 +00:00
Matt Sergeant
1414144068 Allow dots in the address
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@167 958fd67b-6ff1-0310-b445-bb7760255be9
2003-07-24 12:44:19 +00:00
Matt Sergeant
80784bb862 Added an smtp forwarding plugin
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@146 958fd67b-6ff1-0310-b445-bb7760255be9
2003-06-09 11:06:41 +00:00
Ask Bjørn Hansen
b1fc4cafc5 Have the qmail-queue plugin add the message-id to the "Queued!"
message we send back to the client (to help those odd sendmail using
people debug their logs)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@140 958fd67b-6ff1-0310-b445-bb7760255be9
2003-04-16 16:45:57 +00:00
Ask Bjørn Hansen
bcaf58471e most of these changes were by Rasjid Wilcox <rasjidw@openminddev.net>.
Fix error handling in queue/qmail-queue.

  Add option to queue/qmail-queue to specify an alternate qmail-queue
  location.

  Add support for the QMAILQUEUE environment variable.

  PPerl compatibility (yay!)


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@110 958fd67b-6ff1-0310-b445-bb7760255be9
2003-01-20 11:01:32 +00:00
Ask Bjørn Hansen
253eeee879 move the queue code to a plugin; document the queue plugin hook.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@80 958fd67b-6ff1-0310-b445-bb7760255be9
2002-10-10 01:49:34 +00:00