package Email::Send::NNTP;
use strict;

our $VERSION = '2.202';
$VERSION = eval $VERSION;

use vars qw[$NNTP];
use Net::NNTP;
BEGIN {
  local $Return::Value::NO_CLUCK = 1;
  require Return::Value;
  Return::Value->import;
}

sub is_available {
    return   eval { require Net::NNTP }
           ? success
           : failure $@;
}

sub send {
    my ($class, $message, @args) = @_;
    eval { require Net::NNTP };
    if ( @_ > 1 ) {
        $NNTP->quit if $NNTP;
        $NNTP = Net::NNTP->new(@args);
        return failure unless $NNTP;
    }
    return failure unless $NNTP->post( $message->as_string );
    return success;
}

sub DESTROY {
    $NNTP->quit if $NNTP;
}

1;

__END__

=head1 NAME

Email::Send::NNTP - Post Messages to a News Server

=head1 SYNOPSIS

  use Email::Send;

  my $mailer = Email::Send->new({mailer => 'NNTP'});

  $mailer->mailer_args([Host => 'nntp.example.com']);

  $mailer->send($message);

=head1 DESCRIPTION

This is a mailer for C<Email::Send> that will post a message to a news server.
The message must be formatted properly for posting. Namely, it must contain a
I<Newsgroups:> header. At least the first invocation of C<send> requires
a news server arguments. After the first declaration the news server will
be remembered until such time as you pass another one in.

=head1 SEE ALSO

L<Email::Send>,
L<Net::NNTP>,
L<perl>.

=head1 AUTHOR

Casey West, <F<casey@geeknest.com>>.

=head1 CONTRIBUTORS

=over

=item *

Chase Whitener, <F<capoeirab@cpan.org>>.

=item *

Ricardo SIGNES, <F<rjbs@cpan.org>>.

=back

=head1 COPYRIGHT AND LICENSE

Copyright (c) 2004 Casey West.  All rights reserved.

This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

=cut
