postmark-go is a Go client library for accessing the Postmark API (http://developer.postmarkapp.com/).
This is an unofficial library that is not affiliated with Postmark. Official libraries are available here.
go get -u github.com/mattevans/postmark-go
You'll need to pass an SERVER_API_TOKEN
when initializing the client. This token can be
found under the 'Credentials' tab of your Postmark server. More info here.
auth := &http.Client{
Transport: &postmark.AuthTransport{Token: "SERVER_API_TOKEN"},
}
client := postmark.NewClient(auth)
emailReq := &postmark.Email{
From: "mail@company.com",
To: "jack@sparrow.com",
TemplateID: 123456,
TemplateModel: map[string]interface{}{
"name": "Jack",
"action_url": "http://click.company.com/welcome",
},
Tag: "onboarding",
TrackOpens: true,
}
email, response, err := client.Email.Send(emailReq)
if err != nil {
return err
}
emailReq := &postmark.Email{
From: "mail@company.com",
To: "jack@sparrow.com",
Subject: "My Test Email",
HtmlBody: "<html><body><strong>Hello</strong> dear Postmark user.</body></html>",
TextBody: "Hello dear Postmark user",
Tag: "onboarding",
TrackOpens: true,
}
email, response, err := client.Email.Send(emailReq)
if err != nil {
return err
}
At the moment only a handful of the more common endpoints have been implemented. Open an issue (or PR) if you required something that's missing.
- Send Email - API Docs | Example
- Send Email & Attachment - API Docs | Example
- Batch Emails - API Docs | Example
- Get Delivery Stats - API Docs | Example
- Get Bounces - API Docs | Example
- Get Single Bounce - API Docs
- Get Bounce Dump - API Docs
- Activate a Bounce - API Docs
- Get Bounced Tags - API Docs
- List Templates - API Docs
- Get Single Template - API Docs
The packages's architecture is adapted from go-github, created by Will Norris. 🍻