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.
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.
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.
client := postmark.NewClient(
postmark.WithClient(&http.Client{
Transport: &postmark.AuthTransport{Token: "SERVER_API_TOKEN"},
}),
)
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,
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
}
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,
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
}
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. 🍻