Pre-flight for HTML email.

Premailer needs your help

Premailer has been chewing through HTML email templates since 2007(!) and has been used by 10s of thousands of people to make working with HTML email a little less horrible.

Since then, Dialect (that’s us) have moved away from building websites (we have a ticketing business now). We need to find something to do with Premailer.

If you

  • would be interested in sponsoring Premailer to cover our hosting costs, or
  • would be interested in having the API stable and paying for API access, or
  • know of a web dev shop and would be interested in taking this project over, or
  • have another idea
please get in touch at We’ll keep Premailer running for the foreseeable future, and hope it can live on indefinitely.

Many thanks to Campaign Monitor, Premailer’s sponsor. They do all this inline CSS voodoo automatically each time you send a message, and their interface is pretty, easy and powerful. If you haven't checked them out yet we heartily recommend you do.

What is this?

For the best HTML e-mail delivery results, CSS should be inline. This is a huge pain and a simple newsletter becomes un-managable very quickly. This script is our solution.

  • CSS styles are converted to inline style attributes
    Checks style and link[rel=stylesheet] tags and preserves existing inline attributes
  • Relative paths are converted to absolute paths
    Checks links in href, src and CSS url('')
  • CSS properties are checked against e-mail client capabilities
    Based on the Email Standards Project’s guides
  • A plain text version is created

A few things to note:

  • Things can get messy very quickly with the * selector—be careful
  • Only the screen, handheld and all media types are processed


If you’re using Firefox 3+, you can use a bookmarklet as a shortcut to processing pages.

To install, drag this link up to your toolbar: Premailer

Premailer API

A beta API for Premailer is now available. See the API documentation for details.

Under the hood

Premailer is written in Ruby, with a lot of help from Nokogiri, Hpricot and the Sinatra framework (goodbye eruby). The source is available on GitHub.

Written by Alex Dunae at Dialect. Copyright 2007-.

Get in touch with us