Easily manage multiple clients, let them keep their brand, and get complete insights into delivery.
Use Postmark servers to organize your email sending into logical groups based on the project, client, or environment. Control who can access each server using our detailed user permissions.
Postmark offers several options for sending email on behalf of your customers.
Send from any email address on your customer’s domain.
Learn more →Send from a verified customer’s email address.
Learn more →Send emails from your own domain specifying a custom “From” name.
Learn more →Get full visibility into your clients’ sending with 45 days of email history as standard (customizable from 0 to 365 days), including open and click tracking to measure how users engage with your emails.
With API libraries for pretty much every programming language you can think of, Postmark fits seamlessly into any stack.
// Send an email with the Postmark-PHP library
// Learn more -> https://postmarkapp.com/developer/integration/official-libraries#php
// Install with composer
composer require wildbit/postmark-php
// Import
use Postmark\PostmarkClient;
// Example request
$client = new PostmarkClient("server token");
$sendResult = $client->sendEmail(
"sender@example.com",
"receiver@example.com",
"Hello from Postmark!",
"This is just a friendly 'hello' from your friends at Postmark."
);
# Send an email with the Postmark Ruby Gem
# Learn more -> https://postmarkapp.com/developer/integration/official-libraries#ruby-gem
# Add the Postmark Ruby Gem to your Gemfile
gem 'postmark'
# Require gem
require 'postmark'
# Create an instance of Postmark::ApiClient
client = Postmark::ApiClient.new('POSTMARK_API_TEST')
# Example request
client.deliver(
from: 'sender@example.com',
to: 'receiver@example.com',
subject: 'Hello from Postmark',
html_body: '<strong>Hello</strong> dear Postmark user.',
track_opens: true
)
# Send an email with the Postmark Rails Gem
# Learn more -> https://postmarkapp.com/developer/integration/official-libraries#rails-gem
# Add this to your gemfile
gem 'postmark-rails'
# Add this to your config/application.rb file:
config.action_mailer.delivery_method = :postmark
config.action_mailer.postmark_settings = { :api_token => "POSTMARK_API_TEST" }
# Send the email
class TestMailer < ActionMailer::Base
def hello
mail(
:subject => 'Hello from Postmark',
:to => 'receiver@example.com',
:from => 'sender@example.com',
:html_body => '<strong>Hello</strong> dear Postmark user.',
:track_opens => 'true'
)
end
end
# Send an email with the Postmark Python library
# Learn more -> https://postmarkapp.com/send-email/python
# Install the Postmark Python library with pip from the command line:
pip install postmarker
# Import
from postmarker.core import PostmarkClient
# Create an instance of the Postmark client
postmark = PostmarkClient(server_token='POSTMARK-SERVER-API-TOKEN-HERE')
# Send an email
postmark.emails.send(
From='sender@example.com',
To='recipient@example.com',
Subject='Postmark test',
HtmlBody='HTML body goes here'
)
// Send an email with the Postmark .NET library
// Learn more -> https://postmarkapp.com/developer/integration/official-libraries#dot-net
// Install with NuGet
PM> Install-Package Postmark
// Import
using PostmarkDotNet;
// Example request
PostmarkMessage message = new PostmarkMessage {
From = "sender@example.com",
To = "receiver@example.com",
Subject = "Hello from Postmark",
HtmlBody = "<strong>Hello</strong> dear Postmark user.",
TextBody = "Hello dear postmark user.",
ReplyTo = "reply@example.com",
TrackOpens = true,
Headers = new NameValueCollection {{ "CUSTOM-HEADER", "value" }}
};
PostmarkClient client = new PostmarkClient("POSTMARK_API_TEST");
PostmarkResponse response = client.SendMessage(message);
if(response.Status != PostmarkStatus.Success) {
Console.WriteLine("Response was: " + response.Message);
}
// Send an email with the Postmark.js library
// Learn more -> https://postmarkapp.com/developer/integration/official-libraries#node-js
// Install with npm
npm install postmark --save
// Require
var postmark = require("postmark");
// Example request
var client = new postmark.ServerClient("server token");
client.sendEmail({
"From": "sender@example.com",
"To": "receiver@example.com",
"Subject": "Test",
"TextBody": "Hello from Postmark!"
});
# Send an email with curl
# Copy and paste this into terminal
curl "https://api.postmarkapp.com/email" \
-X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Postmark-Server-Token: POSTMARK_API_TEST" \
-d "{From: 'sender@example.com', To: 'receiver@example.com', Subject: 'Hello from Postmark', HtmlBody: '<strong>Hello</strong> dear Postmark user.'}"
Email is complicated. Our customer success team are always on hand to help you get set up, investigate bounce reports, or answer any other questions you have.
Customer feedback gathered through Help Scout over the past 60 days.
Reaching the inbox isn’t enough. Your clients’ customers expect transactional emails to arrive immediately—not eventually. Which is why we constantly monitor our delivery speeds and publish the data publicly on our status page for everyone to see.
We’re committed to keeping your data safe and protecting the privacy of your clients’ users.
We have worked hard to meet our obligations as a processor under Article 28 of GDPR and are certified under the EU-U.S. and Swiss-U.S. Privacy Shield frameworks.
Read what we’ve done to comply with GDPR →Control whether your clients can access billing settings with detailed user permissions.
Get in touch to discuss our high-volume tiers.
Tell us how many emails your application sends and receives each month and we’ll find the best tier for you
Starts at $50/month per IP
Our fully managed dedicated IPs are available to customers sending 300,000 emails per month or more.
Starts at $14/month per domain
Fix authentication issues that prevent your email from reaching the inbox and see who’s sending using your domain with DMARC Digests.
Starts at $5/month
Customize how long Postmark will store activity data and message content for your emails. Statistics are always kept indefinitely.
Postmark has been incredibly easy to use, is unfailingly fast and reliable, and the Wildbit team is always around for fast, efficient help.
Setting up was a breeze, the clean and easy to learn UI was enjoyable, and the confidence knowing that web form submission made it to the client? Priceless.
We rely on Postmark’s high-quality sender reputation. This allowed us to ramp up our outbound volume quickly while we migrated from another provider.