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.931 second using v1.01-cache-2.11-cpan-5735350b133 )