<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--Converted with LaTeX2HTML 98.2 beta6 (August 14th, 1998)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>11.8 nntplib --
NNTP protocol client</TITLE>
<META NAME="description" CONTENT="11.8 nntplib --
NNTP protocol client">
<META NAME="keywords" CONTENT="lib">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="STYLESHEET" HREF="lib.css">
<LINK REL="next" HREF="module-smtplib.html">
<LINK REL="previous" HREF="module-imaplib.html">
<LINK REL="up" HREF="internet.html">
<LINK REL="next" HREF="nntp-objects.html">
</HEAD>
<BODY bgcolor="#ffffff">
<div class=navigation>
<table align=center width="100%" cellpadding=0 cellspacing=2>
<tr>
<td><A HREF="nntp-objects.html"><img width=32 height=32 align=bottom border=0 alt="next"
 src="../icons/next.gif"></A></td>
<td><A HREF="internet.html"><img width=32 height=32 align=bottom border=0 alt="up"
 src="../icons/up.gif"></A></td>
<td><A HREF="imap4-example.html"><img width=32 height=32 align=bottom border=0 alt="previous"
 src="../icons/previous.gif"></A></td>
<td align=center bgcolor="#99CCFF" width="100%">
 <b class=title>Python Library Reference</b></td>
<td><A HREF="contents.html"><img width=32 height=32 align=bottom border=0 alt="contents"
 src="../icons/contents.gif"></A></td>
<td><a
 href="modindex.html"><img width=32 height=32 align=bottom border=0 alt="modules"
 src="../icons/modules.gif"></a></td>
<td><A HREF="genindex.html"><img width=32 height=32 align=bottom border=0 alt="index"
 src="../icons/index.gif"></A></td>
</tr></table><b class=navlabel>Next:</b> <span class=sectref><A HREF="nntp-objects.html">11.8.1 NNTP Objects</A></span>
<b class=navlabel>Up:</b> <span class=sectref><A HREF="internet.html">11. Internet Protocols and</A></span>
<b class=navlabel>Previous:</b> <span class=sectref><A HREF="imap4-example.html">11.7.2 IMAP4 Example</A></span>
<br><hr></div>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION0013800000000000000000">
11.8 <tt class=module>nntplib</tt> --
         NNTP protocol client</A>
</H1>

<P>


<P>
<a name="l2h-1736"></a>
<a name="l2h-1737"></a>

<P>
This module defines the class <tt class=class>NNTP</tt> which implements the client
side of the NNTP protocol.  It can be used to implement a news reader
or poster, or automated news processors.  For more information on NNTP
(Network News Transfer Protocol), see Internet <span class=rfc><a name="rfcref-42429"
href="http://info.internet.isi.edu/in-notes/rfc/files/rfc977.txt">RFC 977</a></span>.

<P>
Here are two small examples of how it can be used.  To list some
statistics about a newsgroup and print the subjects of the last 10
articles:

<P>
<dl><dd><pre class=verbatim>
&gt;&gt;&gt; s = NNTP('news.cwi.nl')
&gt;&gt;&gt; resp, count, first, last, name = s.group('comp.lang.python')
&gt;&gt;&gt; print 'Group', name, 'has', count, 'articles, range', first, 'to', last
Group comp.lang.python has 59 articles, range 3742 to 3803
&gt;&gt;&gt; resp, subs = s.xhdr('subject', first + '-' + last)
&gt;&gt;&gt; for id, sub in subs[-10:]: print id, sub
... 
3792 Re: Removing elements from a list while iterating...
3793 Re: Who likes Info files?
3794 Emacs and doc strings
3795 a few questions about the Mac implementation
3796 Re: executable python scripts
3797 Re: executable python scripts
3798 Re: a few questions about the Mac implementation 
3799 Re: PROPOSAL: A Generic Python Object Interface for Python C Modules
3802 Re: executable python scripts 
3803 Re: \POSIX{} wait and SIGCHLD
&gt;&gt;&gt; s.quit()
'205 news.cwi.nl closing connection.  Goodbye.'
</pre></dl>

<P>
To post an article from a file (this assumes that the article has
valid headers):

<P>
<dl><dd><pre class=verbatim>
&gt;&gt;&gt; s = NNTP('news.cwi.nl')
&gt;&gt;&gt; f = open('/tmp/article')
&gt;&gt;&gt; s.post(f)
'240 Article posted successfully.'
&gt;&gt;&gt; s.quit()
'205 news.cwi.nl closing connection.  Goodbye.'
</pre></dl>

<P>
The module itself defines the following items:

<P>
<dl><dt><b><a name="l2h-1731"><tt class=class>NNTP</tt></a></b> (<var>host</var><big>[</big><var>, port
                        </var><big>[</big><var>, user</var><big>[</big><var>, password</var><big>]</big><big>]</big><big>]</big>)
<dd>
Return a new instance of the <tt class=class>NNTP</tt> class, representing a
connection to the NNTP server running on host <var>host</var>, listening at
port <var>port</var>.  The default <var>port</var> is 119.  If the optional
<var>user</var> and <var>password</var> are provided, the
"<tt class=samp>AUTHINFO USER</tt>" and "<tt class=samp>AUTHINFO PASS</tt>" commands are used to
identify and authenticate the user to the server.
</dl>

<P>
<dl><dt><b><a name="l2h-1732"><tt class=exception>error_reply</tt></a></b>
<dd>
Exception raised when an unexpected reply is received from the server.
</dl>

<P>
<dl><dt><b><a name="l2h-1733"><tt class=exception>error_temp</tt></a></b>
<dd>
Exception raised when an error code in the range 400-499 is received.
</dl>

<P>
<dl><dt><b><a name="l2h-1734"><tt class=exception>error_perm</tt></a></b>
<dd>
Exception raised when an error code in the range 500-599 is received.
</dl>

<P>
<dl><dt><b><a name="l2h-1735"><tt class=exception>error_proto</tt></a></b>
<dd>
Exception raised when a reply is received from the server that does
not begin with a digit in the range 1-5.
</dl>

<P>

<p><hr>
<!--Table of Child-Links-->


<UL>
<LI><A NAME="tex2html3131"
 HREF="nntp-objects.html">11.8.1 NNTP Objects </A>
</UL>
<!--End of Table of Child-Links-->
<p>
<div class=navigation><hr><table align=center width="100%" cellpadding=0 cellspacing=2>
<tr>
<td><A HREF="nntp-objects.html"><img width=32 height=32 align=bottom border=0 alt="next"
 src="../icons/next.gif"></A></td>
<td><A HREF="internet.html"><img width=32 height=32 align=bottom border=0 alt="up"
 src="../icons/up.gif"></A></td>
<td><A HREF="imap4-example.html"><img width=32 height=32 align=bottom border=0 alt="previous"
 src="../icons/previous.gif"></A></td>
<td align=center bgcolor="#99CCFF" width="100%">
 <b class=title>Python Library Reference</b></td>
<td><A HREF="contents.html"><img width=32 height=32 align=bottom border=0 alt="contents"
 src="../icons/contents.gif"></A></td>
<td><a
 href="modindex.html"><img width=32 height=32 align=bottom border=0 alt="modules"
 src="../icons/modules.gif"></a></td>
<td><A HREF="genindex.html"><img width=32 height=32 align=bottom border=0 alt="index"
 src="../icons/index.gif"></A></td>
</tr></table><b class=navlabel>Next:</b> <span class=sectref><A HREF="nntp-objects.html">11.8.1 NNTP Objects</A></span>
<b class=navlabel>Up:</b> <span class=sectref><A HREF="internet.html">11. Internet Protocols and</A></span>
<b class=navlabel>Previous:</b> <span class=sectref><A HREF="imap4-example.html">11.7.2 IMAP4 Example</A></span>
</div>
<!--End of Navigation Panel-->
<ADDRESS>
<hr>Send comments on this document to <a href="mailto:python-docs@python.org">python-docs@python.org</a>.
</ADDRESS>
</BODY>
</HTML>
