About usContact usSite help
Quick links
Search this site

Technical Specification

SDPS is the Demon Internet Standard Dialup POP3 Service. It provides POP3 access to the same mail spools as are used by SMTP. This document gives a brief overview of the SDPS architecture and a description of the protocol it implements.

Architecture

Demon stores your incoming email on a cluster of machines called the punts. We have two punts, one at each of our NFCs (Network Facilities Centres) in Finchley and Docklands. An incoming message is sent to one or the other at random. This gives us resiliency in case of network problems; if there is a temporary problem with an NFC, you can still get email held at the other NFC, and new email will still arrive and be stored there.

The SDPS server consists of two separate components:

  • A back end reads email from the SMTP mail spool stored on the punt machines. Since there are two punts, there are two back ends.
  • A front end multiplexes connections to the back ends. Each user command is sent to the correct back end, and the replies are combined and adjusted to give the appearance of a single maildrop.

 

sdps-diagram.gif

In the diagram, the green lines show the flow of POP3 commands and mail being delivered by SDPS, while for comparison the red lines show the flow of mail being delivered by SMTP.

Conformance with RFC 1939

SDPS is designed to be fully conformant with RFC 1939, the current Internet standard for POP3 service. This section describes the choices made where the RFC offers an option.

POP3 commands in the RFC
APOP

not implemented

 
DELE

required

 
LIST

required

No other information is included in the scan listing.



NOOP

required

 
PASS

implemented

Spaces are allowed in the password. See below concerning the passwords accepted.

QUIT

required

 
RETR

required

The message returned is exactly that stored in the mail spool, except that a Return-Path: header is added to the front.

RSET

required

 
STAT

required

No other information is included in the drop listing.

TOP

implemented

 
UIDL

implemented

Identical messages will have different UIDLs.

USER

implemented

See below.



  • The server has an inactivity autologout timer (RFC section 3 page 4), currently set to 30 minutes.
  • Locking (RFC section 4 page 4) applies as follows:
  • A connection for a host locks against all other connections.
  • A connection for a user name locks only against that user name.
  • There is no locking against SMTP mail deliveries.
  • The server does not close the connection after an unsuccessful authentication (RFC section 4 page 5).
  • POP3 does not apply any policy concerning retention or expiry of messages (RFC section 8 page 17). The normal SMTP expiry policy will continue to apply.

Additional commands

In addition to those required by RFC 1939, SDPS provides the following additional commands.

LAST

This command takes no arguments, and returns the highest message number that has been accessed in this session by a DELE or RETR command; the number is set to 0 by the PASS and RSET commands. This command is defined in RFC 1460.

*ENV

This command takes one argument, which must be the number of a message which exists and has not been deleted. If successful, it returns a multi-line response (with the normal notes about termination-octet-stuffing) with the following contents (note that the reply might be empty or less than 4 lines long):

Line 1

The first two characters are either OK or RD (in either case). The former indicates that the message has not previously been read, and the latter that it has been.

Line 2

undefined

Line 3

The envelope FROM address (this can be empty)

Line 4

The envelope TO address

Line 5 onwards

undefined

Special features

The argument to the USER command may be either:

  • a customer host name (e.g. sample or sample.demon.co.uk), or
  • a user name and a host name, separated by a plus or at sign (e.g. fred+sample or fred@sample.demon.co.uk).

In the former case all mail for that host is available; in the latter case, mail is limited to that where the envelope TO address has a user name that matches the user name given.

The server supports two passwords for each host (all users on a host use the same passwords):

  • the dialup password may be used from the appropriate IP address;
  • an additional POP3 password may be used from any address.

Interaction with SMTP

SMTP remains the primary method used by Demon Internet to deliver customer email. For this reason, the interaction between SMTP and POP3 is reduced to a minimum.

If messages arrive during a POP3 session, they are not made available. They will appear in the next session.

If simultaneous POP3 and SMTP connections are made to a client, messages are initially available to both. When a message is successfully delivered via SMTP, it is removed from the mail spool, and is no longer available to POP3. In this case, any future attempt to retrieve the message will result in delivery of a dummy message:

  • RETR returns the dummy message
  • the Message-ID of the dummy message is synthesised
  • LIST will give the size of the original message
  • UIDL will give the unique-ID of the original message

When a POP3 session completes normally using the QUIT command, any deleted messages are then removed from the mail spool. If any of these messages were in the process of being delivered by SMTP, delivery will continue, but any other messages will no longer be available for SMTP to access.

The normal policies for expiry of old messages apply. However, any message that has been read by POP3 (indicated by the *ENV command returning RD on the first line) might be expired without a bounce message being sent.





*