Click here to Skip to main content
Click here to Skip to main content

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

, 24 Mar 2004
Rate this:
Please Sign up or sign in to vote.
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.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

HKcow

Hong Kong Hong Kong
No Biography provided

Comments and Discussions

 
Questionany updates? like yEnc for example? Pinmemberringdrossel12-Sep-09 4:49 
QuestionDateTimeFormat errors (It doesn't like the DateTime Object) Pinmemberundeclared9-Jul-07 0:50 
AnswerRe: DateTimeFormat errors (It doesn't like the DateTime Object) Pinmemberundeclared9-Jul-07 1:36 
Generalmultiple part attatchements PinmemberThisBytes517-Mar-07 8:57 
QuestionPost message PinmemberThe Will3-Aug-06 15:59 
AnswerRe: Post message Pinmembereric.nadeau5-Jan-07 8:43 
GeneralRe: Post message Pinmembereric.nadeau9-Jan-07 3:44 
GeneralRe: Post message [modified] Pinmembereric.nadeau4-Apr-07 4:22 
GeneralGood Job~ PinmemberVB.NET / ASP.NET Beginner8-Jan-06 8:47 
QuestionArrange Headers ? Pinmembernihonsx58-Dec-05 16:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.140709.1 | Last Updated 25 Mar 2004
Article Copyright 2004 by HKcow
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid