--- nfo/perl/libs/Mail/Audit/Dispatch.pm 2003/01/30 23:20:21 1.5 +++ nfo/perl/libs/Mail/Audit/Dispatch.pm 2003/03/23 22:26:22 1.7 @@ -5,10 +5,16 @@ # with the Perl-module "Mail::Audit" # available from CPAN. # -# $Id: Dispatch.pm,v 1.5 2003/01/30 23:20:21 root Exp $ +# $Id: Dispatch.pm,v 1.7 2003/03/23 22:26:22 root Exp $ # # ============================================================ # $Log: Dispatch.pm,v $ +# Revision 1.7 2003/03/23 22:26:22 root +# + header-field 'Message-ID' now included when tracing +# +# Revision 1.6 2003/03/23 21:12:20 root +# + sub jerror and related modifications +# # Revision 1.5 2003/01/30 23:20:21 root # + fixed and enhanced # @@ -97,8 +103,8 @@ $self->{settings}->{RULESFILE} = "$self->{settings}->{HOME}/.dispatchmailrc"; #$self->{settings}->{LOCKFILE} = "$self->{settings}->{HOME}/.procmail.lockfile"; $self->{settings}->{LOCKFILE} = "$self->{settings}->{HOME}/.dispatchmail.lockfile"; - $self->{settings}->{LOGFILE} = "$self->{settings}->{MAILDIR}/.dispatchmail.log"; - $self->{settings}->{ERRLOG} = ".dispatchmail-errors.log"; + $self->{settings}->{LOGFILE} = "$self->{settings}->{MAILDIR}/.mail-delivery.log"; + $self->{settings}->{ERRLOG} = ".mail-delivery_errors.log"; $self->{settings}->{DEFAULT} = "$self->{settings}->{MAILDIR}/Inbox"; } @@ -148,19 +154,22 @@ # check if $self->{settings}->{HOME} exists if (! -e $self->{settings}->{MAILDIR}) { my $msg = "ERROR: Delivery failed, base directory '$self->{settings}->{MAILDIR}' does not exist."; - $self->report($msg); - $self->forward_delivery(); + $self->jerror($msg); } # 1. include rules or fallback # check if $self->{settings}->{RULESFILE} exists if (-f $self->{settings}->{RULESFILE}) { $self->report("RULES: Loading from \"$self->{settings}->{RULESFILE}\"."); - require $self->{settings}->{RULESFILE}; + my $evalstr = "require '$self->{settings}->{RULESFILE}';"; + eval($evalstr); + if ($@) { + my $msg = "ERROR: Delivery failed, '$self->{settings}->{RULESFILE}' had syntax errors:\n$@"; + $self->jerror($msg); + } } else { #die("$self->{settings}->{RULESFILE} doesn't exist"); - $self->report("Configured rulesfile \"$self->{settings}->{RULESFILE}\" doesn't exist."); - $self->forward_delivery(); + $self->jerror("Configured rulesfile \"$self->{settings}->{RULESFILE}\" doesn't exist."); } # 2. export required stuff to rules namespace @@ -185,6 +194,12 @@ } +sub jerror { + my $self = shift; + my $msg = shift; + $self->report("ERROR: $msg"); + $self->forward_delivery(); +} sub _mail2news { my $self = shift; @@ -202,9 +217,10 @@ sub traceEntry { my $self = shift; $self->appendLog('-' x 40 . ' TRACE ' . '-' x 10); - $self->appendLog("From: " . get_chomped($self->{incoming}->from)); - $self->appendLog("To: " . get_chomped($self->{incoming}->to)); - $self->appendLog("Subject: " . get_chomped($self->{incoming}->subject)); + $self->appendLog("From: " . get_chomped($self->{incoming}->from)); + $self->appendLog("To: " . get_chomped($self->{incoming}->to)); + $self->appendLog("Subject: " . get_chomped($self->{incoming}->subject)); + $self->appendLog("Message-ID: " . get_chomped($self->{incoming}->get('Message-ID'))); $self->appendLog('-' x 40 . ' TRACE ' . '-' x 10); }