Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
test Added support for composer and removed constants Apr 5, 2013

Postmark PHP class

Copyright 2009 - 2011, Markus Hedlund, Mimmin AB, Licensed under the MIT License. Redistributions of files must retain the above copyright notice.

Additional contributors

  • Jeff Downie
  • August Trometer
  • Hristo Deshev
  • jeffreyhunter77
  • John Beales
  • Geoff Wagstaff
  • beaudesigns
  • Gabriel Bull


All in-data must be encoded with UTF-8.

Getting started

// Create a "server" in your "rack", then copy it's API key
$postmarkApiKey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';

// Create a message and send it
    ->from('', 'John Smith')
    ->addTo('', 'Jane Smith')
    ->messagePlain('Plaintext message')


There are two ways of configuration.


An adapter class should be used for a more dynamic configuration. The adapter must implement Postmark\MailAdapterInterface. These are the methods that must be implemented.

  • getApiKey - Should return the API key
  • setupDefaults(Postmark\Mail &$mail) - May be used to setup a default email, e.g. set From address.
  • log($logData) - Is called immediately after the email is sent. $logdata is an array with keys messageData, return, curlError and httpCode.

See Tests/Adapter.php for example usage.


    ->from('', 'Name')
    ->addTo('', 'Name')
    ->messagePlain('Plaintext message')


$email = new Postmark\Mail($postmarkApiKey);
$email->from('', 'Name')
    ->addTo('', 'Name')
    ->messagePlain('Plaintext message')

Error handling

See PHPDOC for details on Exceptions thrown. If no API key is set, an E_USER_ERROR will be raised.


Call method debug(Postmark\Mail::DEBUG_VERBOSE) or debug(Postmark\Mail::DEBUG_RETURN) to enable debug mode. DEBUG_VERBOSE prints debug info and DEBUG_RETURN makes send() return debug info as an array.

Unit tests

Unit tests are located in Tests/. Simple test is the unit test framework being used.

Adapter.php runs all tests relevant for adapter configuration.

E-mail address validation

This class uses a regular expression to validate e-mail addresses, in addition to the validation Postmark does. This regex isn't perfect. If you need more extensive validation, please try