CentraleSupélecDépartement informatique
Plateau de Moulon
3 rue Joliot-Curie
F-91192 Gif-sur-Yvette cedex
SIPOP — Supélec's Instructional POP3 Server

SIPOP is a Post Office Protocol (POP3) server for education. It complies with RFC 1939, serving fictive mailboxes to students learning TCP/IP networking and sockets programming. SIPOP runs hassle-free: it comes in the form of a single JAR executable; no configuration is needed.

Why SIPOP?

When teaching TCP/IP networks, socket programming in particular, a good exercise for students is to write a little client for an existing server. One can choose a server with an arbitrary protocol, or one can choose a well-known protocol. We believe that the latter approach is much more motivating for students. POP3 is a real-world protocol, yet it is very simple. Therefore it is a good case study for students.

Features

  • Supports numerous simultaneous connections (≥ 100)
  • Fully compliant with RFC 1939
  • Relaxed requirements for clients: accepts LF-terminated lines in input (where RFC 1939 requires CR+LF), in order to ease sockets programming for beginners (cf. Jon Postel: “Be liberal in what you accept, and conservative in what you send.”)
  • On-the-fly generation of fictive mailboxes: the messages are taken from RSS newsfeeds
  • To keep things simple, all messages are pure US-ASCII

Download

Download sipop.jar.

This archive is the executable that launches the server, and it contains source code as well.

How to use SIPOP?

To run the server, just click on the JAR file in your graphical environment. SIPOP opens a dedicated window that helps you to keep track of the server status and of the incoming connections:

You can also launch SIPOP from the command line:

java -jar sipop.jar

It is possible to prevent SIPOP from opening the status window, for example for use on servers:

java -jar sipop.jar -headless

SIPOP use a few RSS news feeds to generate fictive e-mail messages. At the moment to change the list of RSS feeds, you need to change RandomMailPool.java: just locate the rssURI constant.

License

SIPOP is released under the GNU GPL v3.

The SIPOP software package is provided AS-IS, without any kind of warranty.

Contact

Christophe Jacquet