Skip to content

SparkPost/gosparkpost

Folders and files

NameName
Last commit message
Last commit date
Jan 16, 2020
May 22, 2018
Jun 3, 2016
May 22, 2018
Nov 2, 2021
May 18, 2020
May 18, 2020
Feb 11, 2016
Feb 11, 2016
Oct 6, 2015
Oct 25, 2019
Jan 26, 2018
Oct 30, 2017
May 10, 2017
Jan 20, 2017
May 10, 2017
Feb 18, 2017
May 18, 2020
May 18, 2020
Jan 31, 2018
Jan 31, 2018
Oct 19, 2017
May 18, 2020
May 10, 2017
Jan 16, 2020
Oct 19, 2017
Apr 17, 2017
Nov 2, 2021
Nov 2, 2021
May 22, 2018
Jan 16, 2020
Jan 29, 2020
Jan 29, 2020
May 10, 2017
May 10, 2017
May 18, 2020

Repository files navigation

Sign up for a SparkPost account and visit our Developer Hub for even more content.

SparkPost Go API client

Build Status Code Coverage Go Doc

The official Go package for using the SparkPost API.

Installation

Install from GitHub using go get:

$ go get github.com/SparkPost/gosparkpost

Get a key

Go to API & SMTP in the SparkPost app and create an API key. We recommend using the SPARKPOST_API_KEY environment variable. The example code below shows how to set this up.

Send a message

Here at SparkPost, our "send some messages" api is called the transmissions API - let's use it to send a friendly test message:

package main

import (
  "log"
  "os"

  sp "github.com/SparkPost/gosparkpost"
)

func main() {
  // Get our API key from the environment; configure.
  apiKey := os.Getenv("SPARKPOST_API_KEY")
  cfg := &sp.Config{
    BaseUrl:    "https://api.sparkpost.com",
    ApiKey:     apiKey,
    ApiVersion: 1,
  }
  var client sp.Client
  err := client.Init(cfg)
  if err != nil {
    log.Fatalf("SparkPost client init failed: %s\n", err)
  }

  // Create a Transmission using an inline Recipient List
  // and inline email Content.
  tx := &sp.Transmission{
    Recipients: []string{"someone@somedomain.com"},
    Content: sp.Content{
      HTML:    "<p>Hello world</p>",
      From:    "test@sparkpostbox.com",
      Subject: "Hello from gosparkpost",
    },
  }
  id, _, err := client.Send(tx)
  if err != nil {
    log.Fatal(err)
  }

  // The second value returned from Send
  // has more info about the HTTP response, in case
  // you'd like to see more than the Transmission id.
  log.Printf("Transmission sent with id [%s]\n", id)
}

Documentation

Contribute

TL;DR:

  1. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
  2. Fork the repository.
  3. Go get the original code - go get https://github.com/SparkPost/gosparkpost
  4. Add your fork as a remote - git remote add fork http://github.com/YOURID/gosparkpost
  5. Make your changes in a branch on your fork
  6. Write a test which shows that the bug was fixed or that the feature works as expected.
  7. Push your changes - git push fork HEAD
  8. Send a pull request. Make sure to add yourself to AUTHORS.

More on the contribution process