You want to connect to a Usenet news server to read and post messages. Your program could send a periodic posting to a newsgroup, summarize a newsgroup, or identify first-time contributors in a newsgroup so you can send them a helpful welcome message.
Use the CPAN module Net::NNTP:
use Net::NNTP; $server = Net::NNTP->new("news.host.dom") or die "Can't connect to news server: $@\n"; ($narticles, $first, $last, $name) = $server->group( "misc.test" ) or die "Can't select misc.test\n"; $headers = $server->head($first) or die "Can't get headers from article $first in $name\n"; $bodytext = $server->body($first) or die "Can't get body from article $first in $name\n"; $article = $server->article($first) or die "Can't get article $first from $name\n"; $server->postok() or warn "Server didn't tell me I could post.\n"; $server->post( [ @lines ] ) or die "Can't post: $!\n";
Usenet is a distributed news system. Servers exchange messages to ensure that each server gets all the messages for the newsgroups it carries. Each server sets its own expiration criteria to decide how long messages stay on the server. Client newsreaders connect to their designated server (usually belonging to their company, ISP, or university) and can read existing postings and contribute new ones.
Each message (or article, as they’re also known) has a set of headers and a body, separated by a blank line. Articles are identified in two ways: the message ...