• What's new

The Official Go SDK, Available Now

Mailgun Team
5 min read

Today, we’re happy to announce the general availability of our Mailgun-Go SDK. Now you can send messages through Mailgun using Go! Mailgun-Go allows you to easily interact with our API by greatly reducing the amount of boiler-plate code you need to maintain.

Our SDK is built from a simple foundation graciously offered by Michael Banzon on Github. We are truly indebted to him for his support. We added features on top of his own SDK, including significantly enhanced API coverage, and a rich set of acceptance tests to help developers get started and better understand how to use the SDK.

Mailgun-Go lets you send messages to mailing lists of arbitrary size, subject only to the limitations of your Mailgun account. Here’s a simple example where we send one message to three recipients:

1mg := mailgun.NewMailgun("example.com", "key-example", "")
2
3m := mg.NewMessage(
4 "Dwight Schrute <dwight@example.com>", // From
5 "The Printer Caught Fire", // Subject
6 "We have a problem.", // Plain-text body
7 "Michael Scott <michael@example.com>", // Recipients (vararg list)
8 "George Schrute <george@example.com>",
9 "it-support@example.com",
10)
11
12_, _, err := mg.Send(m)
13
14if err != nil {
15 log.Fatal(err)
16}

and here’s one where we send the same message to potentially millions of recipients:

1mg := mailgun.NewMailgun("example.com", "key-example", "")
2
3m := mg.NewMessage(
4 "Dwight Schrute <dwight@example.com>", // From
5 "Help!", // Subject
6 "The printer's on fire on floor %recipient.floor%!!" // Plain-text body
7)
8
9// Iterate over a collection of addresses and per-user variables.
10for _, user := range mailingList {
11 err := m.AddRecipientAndVariables(user.address, map[string]interface{}{
12 "floor": user.floor,
13 })
14 if err != nil {
15 log.Fatal(err)
16 }
17}
18
19_, _, err = mg.Send(m)
20
21if err != nil {
22 log.Fatal(err)
23}

As you can see, the Mailgun-Go SDK provides an interface that scales pleasantly with your needs.

We will be updating our online documentation to include Go examples soon. In the meantime, please feel free to consult our documentation on GoDoc, read the acceptance tests in our Github repository, or open a new issue through Github or your control panel. We’ll be happy to answer any questions you have!

Happy Sending!

sign up

It's easy to get started. And it's free.

What will you accomplish with 10,000 free emails and a 100 free validations every month?

Sign Up For Free

Last updated on August 27, 2019

  • Related posts
  • Recent posts
  • Top posts
View all

Always be in the know and grab free email resources!

No spam, ever. Only musings and writings from the Mailgun team.

Mailgun is committed to protecting your privacy. Please read ourPrivacy Policybefore providing us with your details.

sign up

It's easy to get started. And it's free.

What will you accomplish with 10,000 free emails and a 100 free validations every month?
Sign up for Free