Skip to content

promapping/sendgrid-go

 
 

Repository files navigation

Build Status GoDoc

This library allows you to quickly and easily use the SendGrid Web API via Go.

Announcements

BREAKING CHANGE as of 2016.06.14

Version 3.0.0 is a breaking change for the entire library.

Version 3.0.0 brings you full support for all Web API v3 endpoints. We have the following resources to get you started quickly:

Thank you for your continued support!

All updates to this library is documented in our CHANGELOG.

Installation

Setup Environment Variables

First, get your free SendGrid account here.

Next, update your environment with your SENDGRID_API_KEY.

echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
echo "sendgrid.env" >> .gitignore
source ./sendgrid.env

Install Package

go get github.com/sendgrid/sendgrid-go

import "github.com/sendgrid/sendgrid-go"

Dependencies

Quick Start

Hello Email

import (
	"encoding/json"
	"fmt"
	"github.com/sendgrid/sendgrid-go"
	"github.com/sendgrid/sendgrid-go/helpers/mail"
	"os"
)
from := mail.NewEmail("Example User", "[email protected]")
subject := "Hello World from the SendGrid Go Library"
to := mail.NewEmail("Example User", "[email protected]")
content := mail.NewContent("text/plain", "some text here")
m := mail.NewV3MailInit(from, subject, to, content)

request := sendgrid.GetRequest(os.Getenv("SENDGRID_API_KEY"), "/v3/mail/send", "https://api.sendgrid.com")
request.Method = "POST"
request.Body = mail.GetRequestBody(m)
response, err := sendgrid.API(request)
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println(response.StatusCode)
    fmt.Println(response.Body)
    fmt.Println(response.Headers)
}

General v3 Web API Usage

import (
	"fmt"
	"github.com/sendgrid/sendgrid-go"
	"os"
)

func main() {
    request := sendgrid.GetRequest(os.Getenv("SENDGRID_API_KEY"), "/v3/api_keys", "https://api.sendgrid.com")
    request.Method = "GET"

    response, err := sendgrid.API(request)
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(response.StatusCode)
        fmt.Println(response.Body)
        fmt.Println(response.Headers)
    }
}

Usage

Roadmap

If you are interested in the future direction of this project, please take a look at our milestones. We would love to hear your feedback.

How to Contribute

We encourage contribution to our libraries, please see our CONTRIBUTING guide for details.

Quick links:

About

sendgrid-go is guided and supported by the SendGrid Developer Experience Team.

sendgrid-go is maintained and funded by SendGrid, Inc. The names and logos for sendgrid-go are trademarks of SendGrid, Inc.

![SendGrid Logo] (https://uiux.s3.amazonaws.com/2016-logos/email-logo%402x.png)

About

SendGrid Library to Interface through Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%