Library tutorials & articles

How to POP3 in C#

Getting Started

I usually begin writing new classes by introducing an exception class that I can use to throw and catch all exceptions of the class.

public class Pop3Exception : System. ApplicationException
{
    public Pop3Exception( string str)
        : base( str)
    {
    }
}

I will not explain the exception class, but rather I expect the reader have enough expertise with C# to understand this exception class before reading the rest of the article.

Next I created a small class that defines a POP3 message.

public class Pop3Message
{
    public long number;
    public long bytes;
    public bool retrieved;
    public string message;
}

When you retrieve lists of POP3 messages from a POP3 server, the list includes a message number and number of bytes. You can then use the message number to retrieve the message content. You'll see this later when we define our List and Retrieve methods. We derive our Pop3 class from the System. Net.Sockets.TcpClient class in the .NET framework.

public class Pop3 : System.Net.Sockets.TcpClient {

The TcpClient class and the other classes in the System.Net.Sockets namespace of the .NET framework are great encapsulations of the familiar function-oriented socket library.

Comments

  1. 22 Jun 2009 at 14:22

    When i change the port to 587 from 110 i got the following error

    220 mx.google.com ESMTP g14sm11215098rvb.54

  2. 22 Jun 2009 at 14:17

    Hi Got the following error when i try to call

    obj.Connect("smtp.gmail.com", txtUser.Text, txtPass.Text);

    A Connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host failed to respond 209.85.199.111: 110

    Can any body please help me to fix this error?

  3. 01 Jun 2009 at 03:58

    Your code is too good. But in your code what happen If i send email today it display that email & tomarrow it show empty inbox. if i again send email it display that new mail only. And i also want to fetch Email subject,Email Body then what i do. Please give solution

  4. 19 Jan 2009 at 19:20
    **Image Hosted by ImageShack.us
    **
  5. 19 Jan 2009 at 19:20
    **I JUST GOT ERROR!!!!!! PLZ RESOLVE THIS ISSUE!!!! [URL=http://imageshack.us][IMG]http://img88.imageshack.us/img88/8177/errorsocketgy7.jpg[/IMG][/URL] [URL=http://g.imageshack.us/img88/errorsocketgy7.jpg/1/][IMG]http://img88.imageshack.us/img88/errorsocketgy7.jpg/1/w325.png[/IMG][/URL]**
  6. 19 Jan 2009 at 18:38
    ** TcpClient tcpClient=new TcpClient();**
  7. 19 Jan 2009 at 18:13
    **I don't know when this code was written but i do need to reference the TcpClient.Connect method! Guys who got confused like me do, TcpClient tcpClient=new TcpClien(); tcpClient.Connect();**
  8. 08 Dec 2008 at 10:22
    I t was cool needed quite alobarated to get the Mail.Body for specific Details... Thanks

Leave a comment

Sign in or Join us (it's free).

Randy Charles Morin Randy's article are Copyright 1998-2003 Randy Charles Morin
AddThis

Related discussion

Related podcasts

Want to stay in touch with what's going on? Follow us on twitter!