On Fri, Feb 16, 2007 at 12:30:33AM -0600, Otto Solares wrote:
On Thu, Feb 15, 2007 at 09:47:19PM -0800, Gordon Messmer wrote:
Otto Solares wrote:
I am a happy courier-mta user for a long time, I'm using it in
a large University (60k users), now we are facing a problem
where users connect to SMTP with authentication in order to
send a mail (we don't allow sending email without auth) and
some users are changing the From: header, it is possible to
tell courier so it'll check the From: header to conform to
the auth user?
No, but you could write a courierfilter to do that. Frameworks for
Python and Perl exist, if you're comfortable with either of those languages.
Excellent! Although I am not versed in perl here is my first
filter attempt, dunno why it doesn't work, when printing
(for debugging) any message->* variable, all the message is
shown. Does somebody knows what I am missing?
Finally it works, this just checks that MAIL FROM conforms to
the AUTH LOGIN, hopefully next version will check the From:
header too as originally intended as I presume this is
insufficient for my purposes. Thanks.
-otto
#
# Courier::Filter::Module::AuthMailFrom
#
# NOTE: module trusting must be disabled
#
# Copyright (C) 2007, Otto Solares <sol...@guug.org>
# Under GPLv2.
package Courier::Filter::Module::AuthMailFrom;
use warnings;
use strict;
use base qw(Courier::Filter::Module);
use constant TRUE => (0 == 0);
use constant FALSE => not TRUE;
sub match;
sub match {
my ($module, $message) = @_;
my $class = ref($module);
return if not $message->authenticated;
#STDERR->print("AuthMailFrom: LOGIN: ", $message->authenticated_user, ",
MAIL FROM: ", $message->sender, "\n");
$_ = $message->sender;
my $user = $message->authenticated_user;
return if (/^$user@.*/);
return ($module->{response} || 'MAIL FROM does not match AUTH LOGIN');
}
TRUE;