✉️ Golang bindings for the Postmark API
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.
The packages’s architecture is adapted from
go-github, created by Will
Norris.