Utility class for generating and publishing Mandrill templates

v1.0.2 2013-08-23 20:48 UTC


A PHP utility class for generating and publishing Mandrill templates.


I am a fan of the Mandrill service. With its template support, we can iterate on email content and layout with relative ease. However, to generate templates, there are a number of steps involved in the workflow, which can be quite manual and errors can easily occur:

  • combining different html files (header, footer, etc) together to build the complete html
  • inlining css
  • copy and pasting final html and plain text into Mandrill

So I set out to create a tool to automate all these for me. I chose Mustache as the templating language.

In addition to being able to "include" templates ("Mustache partials"), I want to be able to use variables in my templates that do not come from the server. For example, we store images on Amazon S3. Instead of hardcoding the S3 host everywhere in my templates, I want to be able to store the host as a variable and reference the variable in my templates.


As Mandrill Template Manager has been packaged up as a Composer package, the easiest way to start using the class is to install Composer and use the autoloader.

A quick example:

$m = new \SeeWah\MandrillTemplateManager\MandrillTemplateManager;
$m->generate('{{> header}}<a href="{{siteUrl}}{{> footer}}">Welcome</a>', $partials, array('siteUrl' => ''), $css);
$m->publish($mandrillKey, 'template name', '', 'See Wah', 'Getting started', false);

For a more complete example, check out the example to see how you may want to use the class in real life.

Adding to your own project

Use Composer, of course!