Serverless Email System
A PEER-To-PEER Platform for Reliable, Secure Communication
Frequently Asked Questions
- What is ePOST?
- What do I need to use ePOST?
- How does ePOST work?
- What are the advantages of running ePOST?
- Which email clients work with ePOST?
- What security does ePOST provide?
- Does my email look any different with ePOST?
- Can I still send and receive email from non-ePOST
- How do I uninstall ePOST?
- I'm having a problem with ePOST - what can I do?
- Can I run more than one ePOST proxy?
- Can I run an ePOST proxy from behind a NAT?
- How do I need to set my firewall for ePOST?
- Can ePOST run SSL servers for email access?
- How can I find out when new ePOST software is
- Can I run ePOST on a laptop?
- How long does ePOST take to deliver mail?
- How can I run ePOST without the GUI?
- How can I run ePOST from the command line?
- ePOST runs slowly with my mail program
- What's with all this serverless email stuff? I
just want to pay my bills.
- ePOST tells me I'm behind a NAT but I'm not.
- Does ePOST solve the SPAM problem?
- How do I use UPnP with ePOST?
ePOST is a serverless email service, which
provides the same type of standard email service as normal email
systems, but does it in a decentralized way. Instead of relying of
dedicated and maintained servers, ePOST is built using user's desktop
machine. This allows ePOST to have better availability, less cost and
less administrative overhead.
ePOST is written in Java, so you will need a
recent version of the Java Virtual Machine (> 1.4.2) in order to run
ePOST. You can download the Java Virtual Machine from Sun Microsystems
should run anywhere Java does. We test on Microsoft Windows, Linux,
and Mac OS X.
If you are behind a NAT or a firewall, you will need to open some
ports in the firewall so ePOST can work. See Question 12.
ePOST works by storing data on all participant
desktops. This means that you desktop is storing some of your mail, but
mail for a number of other users, too. All of the data in encrypted,
however, which prevents other users from reading your mail, and
vice-versa. In order to survive a failure by a participating machine,
ePOST replicas all data onto multiple machines, and makes sure that a
suffient number of copies of each data item are stored at all times.
In order to use ePOST, users simply point their email clients to
SMTP, POP3, and IMAP proxies running on their local machine. All major
email clients have been tested with ePOST and been found to work.
The ePOST proxies conform to the IMAP, POP3, and SMTP RFCs.
Each of these proxies translates commands from IMAP, POP3, or SMTP into
actions at the p2p layer, and sends request out to other nodes in the
network. Thus, to ePOST users, mail looks exactly the same as a normal
A big advantage of ePOST is security. Within the ePOST system all
your email is encrypted. See Question 5 for more
Another advantage of ePOST is that your mail server runs on your PC,
giving you complete control. For example if the mail server crashes, you don't
have to wait on an administrator to restart it. Since the mail server
is local many operations may be much faster because they don't have to
wait on the network.
ePOST is designed to be extremely durable. The Glacier storage layer can prevent data loss
even if up to 60% of the ePOST ring fails. This gives data durability
better than having a system administrator backing up your mail.
Additionally due to the geographical distribution of ePOST nodes it is
unlikely that a disaster will destroy a significant percentage of the
nodes in the network.
All major email clients have been tested and work
with ePOST, including:
Almost any other email client program should work. See the clients
page for more information on how to set up your
All data stored in the p2p network is encrypted,
and all mutable data is signed by the owner. This means that no one can
read your mail, and that no one can forge any messages, or alter any of
All of the ePOST proxies (IMAP, SMTP, and POP3) support SSL
encryption, meaning that your mail client can securely connect to the
proxies without anyone eavesdropping on the conversation. Additionally,
the IMAP proxy supports CRAM-MD5 authentication, which allows non-SSL
connections to securly authenticate without sending the password over
Since you can use the same email reading client
with ePOST as you do with your normal mail account, your email will
look exactly the same as it does now. The only difference will be your
email address, which will look like email@example.com.
Yes. Your new email address can be used by other,
non-ePOST users to send you email, just like a normal email address.
Email which is sent by you to other ePOST users (even at different
locations) is delivered completely within the ePOST system, and does
travel using normal email systems. If you send email to a non-ePOST
user, your ePOST proxy will automatically detect this and deliver the
email as a tranditional email.
Just like installing, uninstalling ePOST is
extremely easy. First, shut down your ePOST proxy by clicking on the Kill
button. Next, simply delete the folder in which ePOST resides. Lastly,
be sure to remove automatic email forwarding from any existing
accounts, if you have it set up.
If you are experiencing a problem with ePOST, feel
free to contact us via the Contact Us
We are more than happy to help you get ePOST working.
Currently, multiple ePOST proxies are only
supported if you have multiple ePOST addresses - ePOST is not designed
to have two proxies for the same user online at the same time. However,
we are looking at adding this feature in future versions. If you would
like to run ePOST on two different machines for the same user, it is
possible, but you must make sure that only one of the two proxies on
online at a given time - otherwise, the proxies may both accept email,
and you may miss some emails.
Yes, though you will either have to set up port forwarding or enable UPnP
support on your NAT box (internet router). Many modern NAT boxes enable
UPnP by default. Note that the UPnP support is currently in beta. You
will have to download some additional libraries and change one setting to
make it work. See question 24
In general, ePOST only requires that port 10001 be
opened on both TCP and UDP for correct functioning. The new UPnP support
in version 2.4.6 can take care of this for you. If you
would like to connect to your proxy from other machines with your mail
client, you should also open up port forwarding on your IMAP port
(default 1143) and SMTP port (default 2025).
Yes - ePOST ships with SSL servers for IMAP, POP3,
and SMTP, but they are disabled by default. To enable them, simply click
on the Prefs
button in the ePOST status window, and select
for th appropriate servers.
Restart your proxy, and the IMAP, POP3, and SMTP servers will run with
SSL. They will be launched on the same ports as before.
Some issues have been discovered with
Java 1.5 and SSL. We do not recommend using SSL if you are running
Java 1.5 at this time. If you find this configuration to work, please
with your ePOST version, Java
version, mail client, and mail client version.
If you are running ePOST, your proxy will
periodically check to see if a new version of ePOST has been released.
If it detects a new version, it will ask you if you want it to
automatically download and install this new version. Otherwise, you can
always periodically check for updates on this website.
Yes. ePOST is designed to be run on laptops,
which periodically connect to the ring, and are later disconnected.
ePOST will automatically detect, for example, if you machine has gone
to sleep, and will restart itself to rejoin the ring upon waking up.
Additionally, ePOST will work behind NATs, assuming that port
forwarding can be appropriately set up.
ePOST delivers mail in a completely different
architecture than existing email systems. Consequently, there is a very
slight delay in delivering email - usually not more than one minute.
It is possible to tune this delay by changing the value of Publish
Interval under the POST tab in the preferences. The
default value is 60000 milliseconds (60 seconds).
To do this, you will need to add two
entries into your proxy.params file. You should open the file and
add the lines
replacing your password
with the password for your ePOST
account. Then, launch ePOST as normal or run it from the
From the command prompt or a
startup script, run the following command in the ePOST directory:
java -jar epost-version.jar
There are some performance problems with ePOST when a mail client uses
multiple connections to download messages simultaneously. Configuring
your mail client to use only one connection can help performance.
force Thunderbird to use one connection by doing the following.
- Right click on your ePOST account and select "Properties..."
- Select "Server Settings"
- Click the "Advanced..." button
- Select the IMAP tab
- set "Maximum number of server connections to cache" to 1
If you have more than one network adaptor in your computer, including
virtual network adaptors (like a VPN connection), ePOST may bind to
the wrong IP address. Add
in your proxy.params
file, replacing aaa.bbb.ccc.ddd
real IP address. A bug in the Linux version of Java also causes some systems
to report their IP address as 127.0.0.1 to ePOST. If you are running on Linux
you may also need to set socket_bindAddress as above.
You can find your proxy.params file in your ePOST directory. If you've
never run ePOST before you can create that file in your ePOST directory.
Within the ePOST system, all user identities are cryptographically verified. That means
that you know exactly who your email is coming from if it comes from another ePOST user.
That makes it very easy to blacklist misbehaving users like spammers. So if everyone
used ePOST for email it's likely that there would be very little SPAM.
Of course, ePOST can't verify the identies of non-ePOST users, so as long as most
of the Internet isn't using ePOST for email, ePOST cannot solve the SPAM problem.
As of version 2.4.6 ePOST supports UPnP for NAT traversal. If you are upgrading from a previous version, download the following files into your epost/lib
The upnplib above was written by Super Bonbon Industries and is also available in source form here under an apache license. The commons jars are from the apache project.