Apache-SMTP
view release on metacpan or search on metacpan
lib/Apache/SMTP.pm view on Meta::CPAN
sub queue_message {
my($session, $data) = @_;
my $sender = $session->get_sender();
my @recipients = $session->get_recipients();
my $mailhost = $session->get_mailhost();
my $mailport = $session->get_mailport();
my $mailip = $session->get_local_ip();
return(0, 554, 'Error: no valid recipients')
unless(@recipients);
my $msgid = add_queue({mailhost => $mailhost,
mailport => $mailport,
mailip => $mailip,
sender => $sender,
recipients => \@recipients,
data => $$data});
return(0) unless defined $msgid;
return(1, 250, "message queued $msgid");
}
sub add_queue {
my $args = shift;
my @recipients = @{$args->{recipients}};
my $smtp;
foreach (@recipients) {
return undef unless $smtp = Net::SMTP->new($args->{mailhost},
Port => $args->{mailport},
LocalAddr => $args->{mailip},);
return undef unless $smtp->mail($args->{sender});
return undef unless $smtp->to($_);
return undef unless $smtp->data();
return undef unless $smtp->datasend($args->{data});
return undef unless $smtp->dataend();
return undef unless $smtp->quit;
}
return (localtime())[0]; # lies that we tell - not a real msgid
}
1;
__END__
=head1 NAME
Apache::SMTP - A simple SMTP server using Apache and mod_perl made simple with
lib/Apache/SMTP.pm view on Meta::CPAN
sub validate_recipient {
my ($session, $recipient) = @_;
return(1, 250, "ok");
}
=item queue_message
sub queue_message {
my($session, $data) = @_;
my $msgid = add_queue({mailhost => 'hostname',
mailport => '25',
mailip => '127.0.0.1',
sender => 'foo@example.com',
recipients => \('bar@example.com'),
data => $$data});
return(1, 250, "message queued $msgid");
}
=item add_queue
my $msgid = add_queue({mailhost => 'hostname',
mailport => '25',
mailip => '127.0.0.1',
sender => 'foo@example.com',
recipients => \('bar@example.com'),
data => 'somestuff'});
=head1 SEE ALSO
Apache::SMTP::Server
Apache::TieBucketBrigade
( run in 0.799 second using v1.01-cache-2.11-cpan-ceb78f64989 )