+ # does an identical message already exist?
+ my $m;
+ for $m (@msg) {
+ if (substr($subject,0,28) eq substr($m->{subject},0,28) && $from eq $m->{from} && grep $m->{to} eq $_, @to) {
+ my $msgno = $m->{msgno};
+ dbg("duplicate message from $from -> $m->{to} to msg: $msgno") if isdbg('msg');
+ Log('msg', "duplicate message from $from -> $m->{to} to msg: $msgno");
+ return;
+ }
+ }
+
+ # write all the messages away
+ my $i;
+ for ( $i = 0; $i < @chunk; $i++) {
+ my $chunk = $chunk[$i];
+ my $ch_subject;
+ if (@chunk > 1) {
+ my $num = " [" . ($i+1) . "/" . scalar @chunk . "]";
+ $ch_subject = substr($subject, 0, 27 - length $num) . $num;
+ } else {
+ $ch_subject = $subject;
+ }
+ my $to;
+ foreach $to (@to) {
+ my $systime = $main::systime;
+ my $mycall = $main::mycall;
+ my $mref = DXMsg->alloc(DXMsg::next_transno('Msgno'),
+ $to,
+ $from,
+ $systime,
+ $private,
+ $ch_subject,
+ $origin,
+ '0',
+ $rr);
+ $mref->swop_it($main::mycall);
+ $mref->store($chunk);
+ $mref->add_dir();
+ push @out, $dxchan->msg('m11', $mref->{msgno}, $to);
+ #push @out, "msgno $ref->{msgno} sent to $to";
+ $mref->notify;
+ }
+ }