[prev] [thread] [next] [lurker] [Date index for 2004/04/06]
Author: richardc Date: 2004-04-06 13:01:31 +0100 (Tue, 06 Apr 2004) New Revision: 1500 Modified: trunk/siesta/lib/Siesta/Plugin/Send.pm Log: batching of identical message bodies - could be kinder on the MTA Modified: trunk/siesta/lib/Siesta/Plugin/Send.pm =================================================================== --- trunk/siesta/lib/Siesta/Plugin/Send.pm 2004-04-06 10:20:47 UTC (rev 1499) +++ trunk/siesta/lib/Siesta/Plugin/Send.pm 2004-04-06 12:01:31 UTC (rev 1500) @@ -12,6 +12,7 @@ my $self = shift; my $mail = shift; + my %messages; my $list = $self->list; USER: for my $user ($list->members) { next if $user->nomail; @@ -22,10 +23,18 @@ $plugin->member($user); next USER if $plugin->process($message); } - Siesta->sender->send( $message, - to => $user->email, + my $stringy = $message->as_string; + $messages{ $stringy } ||= { + message => $message, + to => [], + }; + push @{ $messages{ $stringy }{to} }, $user->email; + }; + for my $batch (values %messages) { + Siesta->sender->send( $batch->{message}, + to => $batch->{to}, from => $list->return_path, - ); + ); } return; }
Generated at 13:57 on 01 Jul 2004 by mariachi 0.52