--- trunk/Nos.pm 2005/08/26 05:38:00 80 +++ trunk/Nos.pm 2006/09/21 10:49:00 87 @@ -421,10 +421,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 +553,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"; @@ -739,6 +736,9 @@ =back +Date ranges are inclusive, so results will include messages sent on +particular date specified with C or C. + Each element in returned array will have following structure: my $row = { @@ -777,7 +777,7 @@ join users on users.id = user_id }; - my $order = qq{ order by date desc }; + my $order = qq{ order by date asc }; my $where; @@ -863,7 +863,10 @@ $self_path =~ s#/[^/]+$##; $self_path =~ s#/t/*$#/#; - $target .= qq#| cd $self_path && ./sender.pl --inbox="$list"#; + $target .= qq#"| cd $self_path && ./sender.pl --inbox='$list'"#; + + # remove hostname from email to make Postfix's postalias happy + $email =~ s/@.+//; if ($a->exists($email)) { $a->update($email, $target) or croak "can't update alias ".$a->error_check; @@ -1113,7 +1116,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 @_ } ); @@ -1213,37 +1216,20 @@ 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 } ) }; } } ### -=head1 UNIMPLEMENTED SOAP FUNCTIONS - -This is a stub for documentation of unimplemented functions. - -=head2 MessagesReceivedByDate - -=head2 MessagesReceivedByDateWithContent - -=head2 ReceivedMessageContent - -Return content of received message. - - my $mail_body = ReceivedMessageContent( id => 42 ); - - - - =head1 NOTE ON ARRAYS IN SOAP Returning arrays from SOAP calls is somewhat fuzzy (at least to me). It