NNTP library that supports post retrieval with attachments and a lot more






4.25/5 (12 votes)
Mar 22, 2004
1 min read

231755

520
NNTP library for .NET
Introduction
I have built this library because I found that there is lack of support for NNTP. I wanted a library supporting Multilanguage posts with attachments. That required MIME handling, Base64, UUEncode, Quoted-Printable etc. I also wanted a library with Authentication support too.
Using the code
Classes can be classified as below.
- BS:
NntpConnection
- VO:
Article
,ArticleBody
,ArticleHeader
,Attachment
,MIMEPart
,Newsgroup
- Util:
NntpUtil
- Exp:
NntpException
Using the library is simple, and it is done mainly by manipulating the NntpConnection
class.
Connect to a specified news server and list all the newsgroups:
NntpConnection con = new NntpConnection();
con.ConnectServer(serverName, 119);
ArrayList list = con.GetGroupList();
foreach ( Newsgroup ng in list )
Console.WriteLine(ng.Group);
Subscribe to a group and list out all the articles:
Newsgroup ng = con.ConnectGroup(groupName);
ArrayList list = con.GetArticleList(ng.Low, ng.High);
foreach( Article article in list )
Console.WriteLine(article.Header.Subject);
Retrieve an article, examine the text content and save the attachment:
// msgId can be a string or an integer
Article a = con.GetArticle(msgId);
Console.WriteLine(a.Body.Text);
foreach ( Attachment at in a.Body.Attachments )
{
at.SaveAs(@"C:\Temp\" + at.Filename, true);
}
If you want to provide an identity:
NntpConnection con = new NntpConnection();
con.ConnectServer(serverName, 119);
// Identity will be store and will be sent automatically upon the server request
con.ProvideIdentity(username, password);
// You can force the identity to be sent immediately,
// however some servers do not support this
con.SendIdentity();
This is a brief description only and my library has many more features. I will review this article if I have time.
More Information
Articles are decoded by self-built library, where it is still far away from the internet standard. However, it should be able to decode over 95% of the posts in the internet. These codes are still under development and will be updated soon.
History
- Beta 0.1 2004/03/17
- Beta 0.2 2004/03/23
- Enhanced MIME support by optimizing internal implementation.
- Restructured some classes.
- New authentication methods.