IndieWebCamp is a 2-day creator camp focused on growing the independent web

email

Email is a decentralized, non-web messaging transport.

Contents

Use cases

  • Asynchronous posting to your website.

Legacy:

IndieWeb examples

Indiewebcamp creators currently posting to their sites via email:

Barnaby Walters

Support

Due to its popularity and ubiquity email is extremely widely supported.

Application integration

Of particular interest is the fact that many native applications (especially on iOS) include it in their share/export/action menus by default. This could be an excellent UI to hijack for quick and easy posting to our own sites.

Criticism

Bad for more than two people

Whilst adequate for some one to one conversation it scales extremely badly to conversations with more than two people.

Bad for collaboration

It is also appallingly bad for collaboration (wikis or version control systems are much better for this).

Not web

  • URLs == web
  • email addresses != web.[1]

Not web identifiers

  • email addresses are internet identifiers, not web identifiers, by definition.[2]

Maintenance disinterest

  • "I would rather futz with a domain and shared hosting than my own SMTP server any day"[3]

Bad for identity

FAQ

Can I point my domain to my VPS(/web server) but still use hosted email services? I don’t want to run a mailserver

Yes, your domain name can resolve to the IP address of your web server for HTTP traffic, but direct mail agents to look elsewhere. See also DNS.

Email Services by Type

Here are various levels of email services available from different providers, roughly ordered from easiest/cheapest/friendliest to most powerful/technical.

Custom domain email providers

Custom domain email providers have the ability to set up an email account to send email as if it is from your own personal domain.

You have to separately configure your domain (perhaps at your DNS provider or web hosting provider) to forward domain sent to your domain (e.g. example@example.com) to whatever email provider you use.

Advantages:

  • ...

Disadvantages:

  • ...

IndieWeb community members using this approach:

  • Jonny Barnes is using Fastmail's service for receibing/reading/sending jonnybarnes.net emails. Fastmail works by setting up a custom domain as an alias for your fastmail inbox.
  • Tantek Çelik is using Gmail for receiving/reading/sending tantek.com emails.
  • ...

Specific services:

Gmail

Main article: Gmail

Gmail (gmail.com run by Google) is a free email service that has the ability to set it up to send email as if it is from your own personal domain, optionally using the SMTP server from your domain host (web host).

FastMail

FastMail(https://www.fastmail.fm/signup/personal.html) is a paid email service that has a range of options from only giving you a @fastmail address to others that allow you to have your own personal domain. Other differentiators are with how much email you can store.

Pobox

Pobox(http://pobox.com/pricing) is a paid email service that has two types of accounts: mailstore and forwarding. All of their plans allow for personal domains.

Mail as a Service

Mandrill

Mandrill is a service for sending and receiving emails run by Mailchimp. Its free plan is generous enough to easily cover the needs of an individual posting to their own site.

  1. Register at http://mandrillapp.com
  2. Create a new inbound domain and set up MX records for the domain you’ve chosen detailed here
  3. Set up your web server to accept POST requests to the URL you configured
    • Make sure you verify the origin of the request as detailed here. You can see the key for your webhook here
    • The format of the POST request is detailed here. Send some test emails to yourself and store the results to learn about the format

Beware: I have experienced some inconsistencies in the mandrill responses. Namely that sometimes attachments are in the msg.attachments key, but I have also seen them in msg.images. I am currently using attachments = msg.attachments || msg.images || [] to cater for both cases. --Waterpigs.co.uk 10:26, 24 May 2013 (PDT)

Other Inbound Email Providers

There are other email PaaS companies which offer similar inbound POST request hooks instead of using Mandrill. More details coming soon.

  • MailGun - [4]
  • PostMark - [5]
  • Comparison of several providers - [6]

Mail Forwarding Services

Advantages:

  • The service provider handles all of the issues that are involved with mail delivery such as spam filtering, DKIM and SPF support and will also cache your mail if your MTA goes offline
  • ...

Disadvantages:

  • You still need to setup a MTA to receive the email being forwarded by the vendor
  • ...

IndieWeb community members using this approach:

  • Bear is using MailRoute for receiving/sending bear.im emails.
  • ...

MailRoute

MailRoute allows you to specify its mail servers in your domain's MX records and then specify what server domain or IP Address to forward sanitized emails to. It offers spam filtering, greylisting and a number of other features. Once you have an account and have configured it for your domain you are then ready to setup your local MTA.

Handling it Yourself

Running your own mail server

A MTA (Mail Transfer Agent) is a process that runs on your server and accepts incoming SMTP (port 25 generally) connections for mail delivery. Running your own MTA is fraught with trouble and can be so very time consuming that even people who run servers for a living generally use a forwarding service to handle all of the messy bits.

The example I give here will be to use Mailroute as the forwarding service and Postfix as the local MTA, but other combinations can be used.

  • Note* this is a draft work-in-progress - I'll be filling in more concrete examples and other suggestions as I get time.

I use Postfix primarily because it comes from all of the OS Distros with a very sane set of defaults that you enter during setup and it just works. The reason Postfix becomes a drop-in tool is because of the work that is being done by the Mail Forwarder you setup in the prior step.

The key bits to configure is to tell the installer that you are using Postfix as "Stand-alone Internet Host" and then make sure the main.cf entries for mydestination contains your domain and relayhost contains the domain name for your Mail Forwarder.

TODO:

  • tls and sasl configuration
  • show how to configure the host's MDA (Mail Delivery Agent) to deliver emails to a program instead of a user mailbox
  • show how to configure a mailbox to use store mail to be read by a cronjob or other agent

Security Issues

Anyone can send fake email from any email address. You need some way of determining that inbound email does indeed come from who it appears to. Possible solutions include:

  • Make sure you’re verifying the authenticity of the request sent to your webhook
  • Using “secret” email addresses by embedding the password in the address, e.g. myreallysecurepasswordorrandomkey@example.com — then store it in a private address book to save typing
    • Flickr does this - to let you upload photos by email - and the email address are pretty short too.
  • Use a mechanism such as SPF to determine the authenticity of an email

See Also