Technical Blog

Replacing SMTP with XMPP

Posted on

The idea is out: XMPP is a perfect replacement for SMTP.  SMTP (the current standard e-mail program) is outdated for a variety of reasons, such as the fact that it’s not SPAM resistant and that you can’t know for sure (easily) who sent a message.

XMPP (a.k.a. Jabber) solves a lot of this and is a fully extensible protocol that has already been adopted as a standard for IM.  The benefits are many, and there is only one major hurdle: every server on the Internet would have to change software!

Regular readers may be able to guess my (and others’) solution to that problem: backwards compatibility!  When using XMPP for primary email, one must provide a bridge back to the SMTP world.  There’s no real way around that for now.  Fortunately, it’s not too hard.  There are a few options:

  1. Write a client that supports both XMPP and SMTP (through POP3 or IMAP) and have an identical address on both networks (think
  2. Modify (/write) an SMTP-based mail server to support XMPP.
  3. Modify (/write) an XMPP server to support SMTP.

I really believe option #3 is the way to go.

What else may be required for this to become a reality?  Well, some way of keeping the traditional email experience (at least somewhat) may be required for the masses.  This means things like an inbox (for non-chat messages) and tags for message history.  Gmail actually already has this for offline messages.  There was also some work in 2004 on an XMPP client that supported something like this.

Some say that the encoding of emails must be retained.  I think this is bunk because it defeats the purpose of changing protocols and killing the old standard.  Some thought does need to go into the handling of offline payloads (especially file transfers / email attachments).  I think data: URIs may work for this, but something better may be in the works.

All it takes is one person who decides to adopt this as their primary way of functioning.  They develop some software, and it spreads from there.  I’m sticking with GTalk servers for Jabber for now (although I have the power to run my own, just because it’s easier for people who already have that address (I hate having multiple addresses).  What I’m really waiting for / looking for is a decent client for this.  Gmail has IM built in and handles this model for offline messages well, but it is not really even possible to reply to emails via Jabber, et cetera.  GTalk interfaces (including Gmail) actually don’t support any XMPP message type except chat well just yet.  We’re getting closer to something that could work though.

2 Responses


From everything I’ve read so far, translating mime to xml is already been thought of. However, I haven’t seen anything about xml to mime translation. ie. Having an smtp server receive and email, convert the contents to xmpp, and send it on to a client would not be difficult. Having a xmpp client understand reply, forward, bcc, et el is what I’m having a hard time figuring out. Would you have any info on that front?

Leave a Response