Golang package for the Postmark API
Go
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.editorconfig Initial commit Apr 17, 2016
.gitignore Ignore stuff Apr 19, 2016
.travis.yml Wha? Travis can't find goji? May 5, 2016
CHANGELOG.md Update changelog Jul 13, 2018
LICENSE Initial commit Apr 17, 2016
README.md Merge pull request #9 from midiland/master Jul 13, 2018
bounce.go rename struct & make it private Nov 3, 2016
bounce_test.go * Bypass inbound rules Apr 28, 2016
email.go Add metadata field to email Jul 13, 2018
email_test.go Squeezing a little more test coverage #obsessed Apr 28, 2016
messages_inbound.go rename struct & make it private Nov 3, 2016
messages_inbound_test.go Retry inbound message for processing Apr 28, 2016
messages_outbound.go Updated OutboundMessage definition, corrected Attachments datatype. Mar 30, 2017
messages_outbound_test.go Updated test case to simulate an outbound message with an attachment. Mar 30, 2017
postmark.go adding SendTemplatedEmailBatch Mar 29, 2018
postmark_test.go Initial commit Apr 17, 2016
sender_signatures.go Add comment break May 25, 2018
sender_signatures_test.go Rename func May 25, 2018
server.go Rename Get/Edit|ThisServer -> Get/Edit|CurrentServer Jul 13, 2018
server_test.go Rename Get/Edit|ThisServer -> Get/Edit|CurrentServer Jul 13, 2018
servers.go rename struct & make it private Nov 3, 2016
servers_test.go * Bypass inbound rules Apr 28, 2016
stats.go Update type and function names May 25, 2018
stats_test.go Add test May 25, 2018
templates.go Merge pull request #9 from midiland/master Jul 13, 2018
templates_test.go Merge pull request #9 from midiland/master Jul 13, 2018

README.md

Postmark

Build Status Go Report Card codecov.io GoDoc

A Golang package for the using Postmark API.

Installation

go get -u github.com/keighl/postmark

Basic Usage

Grab your Server Token, and your Account Token.

import (
    "github.com/keighl/postmark"
)

client := postmark.NewClient("[SERVER-TOKEN]", "[ACCOUNT-TOKEN]")

email := postmark.Email{
	From: "no-reply@example.com",
	To: "tito@example.com",
	Subject: "Reset your password",
	HtmlBody: "...",
    TextBody: "...",
	Tag: "pw-reset",
	TrackOpens: true,
}

_, err = client.SendEmail(email)
if err != nil {
	panic(err)
}

Swap out HTTPClient for use on Google App Engine:

import (
    "github.com/keighl/postmark"
    "google.golang.org/appengine"
    "google.golang.org/appengine/urlfetch"
)

// ....

client := postmark.NewClient("[SERVER-TOKEN]", "[ACCOUNT-TOKEN]")

ctx := appengine.NewContext(req)
client.HTTPClient = urlfetch.Client(ctx)

// ...

API Coverage

  • Emails
    • POST /email
    • POST /email/batch
    • POST /email/withTemplate
    • POST /email/batchWithTemplates
  • Bounces
    • GET /deliverystats
    • GET /bounces
    • GET /bounces/:id
    • GET /bounces/:id/dump
    • PUT /bounces/:id/activate
    • GET /bounces/tags
  • Templates
    • GET /templates
    • POST /templates
    • GET /templates/:id
    • PUT /templates/:id
    • DELETE /templates/:id
    • POST /templates/validate
  • Servers
    • GET /servers/:id
    • PUT /servers/:id
  • Outbound Messages
    • GET /messages/outbound
    • GET /messages/outbound/:id/details
    • GET /messages/outbound/:id/dump
    • GET /messages/outbound/opens
    • GET /messages/outbound/opens/:id
  • Inbound Messages
    • GET /messages/inbound
    • GET /messages/inbound/:id/details
    • PUT /messages/inbound/:id/bypass
    • PUT /messages/inbound/:id/retry
  • Sender signatures
    • GET /senders
    • Get a sender signature’s details
    • Create a signature
    • Edit a signature
    • Delete a signature
    • Resend a confirmation
    • Verify an SPF record
    • Request a new DKIM
  • Stats
    • GET /stats/outbound
    • GET /stats/outbound/sends
    • GET /stats/outbound/bounces
    • GET /stats/outbound/spam
    • GET /stats/outbound/tracked
    • GET /stats/outbound/opens
    • GET /stats/outbound/platform
    • Get email client usage
    • Get email read times
  • Triggers
    • Tags triggers
      • Create a trigger for a tag
      • Get a single trigger
      • Edit a single trigger
      • Delete a single trigger
      • Search triggers
    • Inbound rules triggers
      • Create a trigger for inbound rule
      • Delete a single trigger
      • List triggers