postmark-go
postmark-go copied to clipboard
✉️ Golang bindings for the Postmark API
postmark-go
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.
v1.0 Breaking Changes
The signature of NewClient
has changed. It now accepts options, one of which can be a custom HTTP client. Please pin to an older version if required.
Installation
go get -u github.com/mattevans/postmark-go
Setup
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.
Client + Authentication
client := postmark.NewClient(
postmark.WithClient(&http.Client{
Transport: &postmark.AuthTransport{Token: "SERVER_API_TOKEN"},
}),
)
Example usage (with Template)
emailReq := &postmark.Email{
From: "[email protected]",
To: "[email protected]",
TemplateID: 123456,
TemplateModel: map[string]interface{}{
"name": "Jack",
"action_url": "http://click.company.com/welcome",
},
Tag: "onboarding",
TrackOpens: true,
Metadata: map[string]string{
"client-id": "123456",
"client-ip": "127.0.0.1",
},
}
email, response, err := client.Email.Send(emailReq)
if err != nil {
return err
}
Example usage (with HtmlBody)
emailReq := &postmark.Email{
From: "[email protected]",
To: "[email protected]",
Subject: "My Test Email",
HtmlBody: "<html><body><strong>Hello</strong> dear Postmark user.</body></html>",
TextBody: "Hello dear Postmark user",
Tag: "onboarding",
TrackOpens: true,
Metadata: map[string]string{
"client-id": "123456",
"client-ip": "127.0.0.1",
},
}
email, response, err := client.Email.Send(emailReq)
if err != nil {
return err
}
What's Implemented?
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
Thanks & Acknowledgements :ok_hand:
The packages's architecture is adapted from go-github, created by Will Norris. :beers: