summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-01-28 07:16:50 +0000
committerfukachan <fukachan>2001-01-28 07:16:50 +0000
commit6d5d0c61438aa90bde9e1b368f09be53151ed188 (patch)
tree5a8e7f768401f275e6f66c4164a363b34cd2e710
parent5395a27f92f0d66d6276c687a02ebf3fc5c68cfb (diff)
downloadfml8-6d5d0c61438aa90bde9e1b368f09be53151ed188.tar.gz
fml8-6d5d0c61438aa90bde9e1b368f09be53151ed188.tar.bz2
fml8-6d5d0c61438aa90bde9e1b368f09be53151ed188.zip
remove code reference passing since we should shiled
internal variables within IO::MapAdapter.
-rw-r--r--fml/lib/IO/MapAdapter.pm16
-rw-r--r--fml/lib/MailingList/SMTP.pm35
2 files changed, 20 insertions, 31 deletions
diff --git a/fml/lib/IO/MapAdapter.pm b/fml/lib/IO/MapAdapter.pm
index 770805d5..a32aa7c8 100644
--- a/fml/lib/IO/MapAdapter.pm
+++ b/fml/lib/IO/MapAdapter.pm
@@ -90,12 +90,7 @@ sub new
my ($type) = ref($self) || $self;
my ($me) = {};
- if ( ref($map) eq 'CODE' ) {
- $me->{_type} = 'array_on_memory_by_code';
- eval { &$map($me);};
- _error_reason($me, $@) if $@;
- }
- elsif ( ref($map) eq 'ARRAY' ) {
+ if (ref($map) eq 'ARRAY') {
$me->{_type} = 'array_reference';
$me->{_array_reference} = $map;
@@ -187,10 +182,6 @@ sub open
$self->{_array_reference} = \@members;
$self->SUPER::open( { flag => $flag } );
}
- elsif ($self->{'_type'} eq 'array_on_memory_by_code') {
- $self->{_array_reference} = $self->{ _recipients_array_on_memory };
- $self->SUPER::open( { flag => $flag } );
- }
elsif ($self->{'_type'} eq 'array_reference') {
$self->SUPER::open( { flag => $flag } );
}
@@ -247,7 +238,6 @@ sub _get_address
return undef;
}
elsif ($self->{'_type'} eq 'unix.group' ||
- $self->{'_type'} eq 'array_on_memory_by_code' ||
$self->{'_type'} eq 'array_reference') {
$self->SUPER::get_next_value();
}
@@ -301,7 +291,6 @@ sub getpos
defined $fh ? tell($fh) : undef;
}
elsif ($self->{'_type'} eq 'unix.group' ||
- $self->{'_type'} eq 'array_on_memory_by_code' ||
$self->{'_type'} eq 'array_reference') {
$self->SUPER::getpos();
}
@@ -320,7 +309,6 @@ sub setpos
seek($fh, $pos, 0);
}
elsif ($self->{'_type'} eq 'unix.group' ||
- $self->{'_type'} eq 'array_on_memory_by_code' ||
$self->{'_type'} eq 'array_reference') {
$self->SUPER::getpos($pos);
}
@@ -339,7 +327,6 @@ sub eof
$fh->eof if defined $fh;
}
elsif ($self->{'_type'} eq 'unix.group' ||
- $self->{'_type'} eq 'array_on_memory_by_code' ||
$self->{'_type'} eq 'array_reference') {
$self->SUPER::eof();
}
@@ -357,7 +344,6 @@ sub close
$self->{_fh}->close if defined $self->{_fh};
}
elsif ($self->{'_type'} eq 'unix.group' ||
- $self->{'_type'} eq 'array_on_memory_by_code' ||
$self->{'_type'} eq 'array_reference') {
;
}
diff --git a/fml/lib/MailingList/SMTP.pm b/fml/lib/MailingList/SMTP.pm
index 4c3ea0aa..960d7171 100644
--- a/fml/lib/MailingList/SMTP.pm
+++ b/fml/lib/MailingList/SMTP.pm
@@ -58,6 +58,23 @@ To start delivery, use deliver() method in this way.
body => $body_object,
});
+You can use ARRAY REFERENCE.
+
+ # reference to an array of recipients
+ $raaray = [ 'kenken@nuinui.net' ];
+
+ $service->deliver(
+ {
+ mta => '127.0.0.1:25',
+
+ smtp_sender => 'rudo@nuinui.net',
+ recipient_array_reference => $rarray,
+ recipient_limit => 1000,
+
+ header => $header_object,
+ body => $body_object,
+ });
+
=head1 DESCRIPTION
This module provides SMTP/ESMTP mail delivery service.
@@ -353,8 +370,8 @@ sub deliver
}
# alloc virtual recipient map
- if (ref( $args->{ recipient_array } ) eq 'ARRAY') {
- my $map = $self->_alloc_recipients_array_on_memory($args);
+ if (ref( $args->{ recipient_array_reference } ) eq 'ARRAY') {
+ my $map = $args->{ recipient_array_reference };
push(@maps, $map);
}
@@ -652,20 +669,6 @@ sub _send_recipient_list
}
-# Descriptions: create CODE REFERECE to handle recipients array on memory
-# Arguments: $self $args
-# Side Effects: $me is referenced, so not destroyed. It is a closure (?).
-# Return Value: CODE REFERENCE
-sub _alloc_recipients_array_on_memory
-{
- my ($self, $args) = @_;
- return sub {
- my ($me) = @_;
- $me->{ _recipients_array_on_memory } = $args->{ recipient_array };
- };
-}
-
-
############################################################
#####
##### DATA: