--- trunk/Nos.pm 2005/08/26 11:48:09 82 +++ trunk/Nos.pm 2006/12/18 18:55:43 89 @@ -90,16 +90,21 @@ debug => 1, verbose => 1, hash_len => 8, + full_hostname_in_aliases => 0, ); Parametar C defines length of hash which will be added to each outgoing e-mail message to ensure that replies can be linked with sent e-mails. +C will turn on old behaviour (not supported by Postfix +postalias) to include full hostname in aliases file. + + =cut sub new { - my $class = shift; - my $self = {@_}; + my $class = shift; + my $self = {@_}; bless($self, $class); croak "need at least dsn" unless ($self->{'dsn'}); @@ -421,10 +426,7 @@ my $m = Email::Simple->new($message_text) || croak "can't parse message"; - unless( $m->header('Subject') ) { - warn "message doesn't have Subject header\n"; - return; - } + warn "message doesn't have Subject header\n" unless( $m->header('Subject') ); my $lists = $self->{'loader'}->find_class('lists'); @@ -556,7 +558,7 @@ my $m_obj = Email::Simple->new($msg) || croak "can't parse message"; $m_obj->header_set('Return-Path', $from_email_only) || croak "can't set Return-Path: header"; - $m_obj->header_set('Sender', $from_email_only) || croak "can't set Sender: header"; + #$m_obj->header_set('Sender', $from_email_only) || croak "can't set Sender: header"; $m_obj->header_set('Errors-To', $from_email_only) || croak "can't set Errors-To: header"; $m_obj->header_set('From', $from_addr) || croak "can't set From: header"; $m_obj->header_set('To', $to) || croak "can't set To: header"; @@ -869,7 +871,7 @@ $target .= qq#"| cd $self_path && ./sender.pl --inbox='$list'"#; # remove hostname from email to make Postfix's postalias happy - $email =~ s/@.+//; + $email =~ s/@.+// if (not $self->{full_hostname_in_aliases}); if ($a->exists($email)) { $a->update($email, $target) or croak "can't update alias ".$a->error_check; @@ -877,7 +879,7 @@ $a->append($email, $target) or croak "can't add alias ".$a->error_check; } - #$a->write($aliases) or croak "can't save aliases $aliases ".$a->error_check; +# $a->write($aliases) or croak "can't save aliases $aliases ".$a->error_check; return 1; } @@ -1119,7 +1121,7 @@ if ($_[0] !~ m/^HASH/) { return $nos->add_member_to_list( - list => $_[0], email => $_[1], name => $_[2], ext_id => $_[4], + list => $_[0], email => $_[1], name => $_[2], ext_id => $_[3], ); } else { return $nos->add_member_to_list( %{ shift @_ } ); @@ -1219,15 +1221,15 @@ if ($_[0] !~ m/^HASH/) { die "need at least list or email" unless (scalar @_ < 2); - return $nos->received_messages( + return \@{ $nos->received_messages( list => $_[0], email => $_[1], from_date => $_[2], to_date => $_[3], message => $_[4] - ); + ) }; } else { my $arg = shift; die "need list or email argument" unless ($arg->{'list'} || $arg->{'email'}); - return $nos->received_messages( $arg ); + return \@{ $nos->received_messages( %{ $arg } ) }; } }