Categorygithub.com/piemapping/sendgrid-go
modulepackage
3.0.0+incompatible
Repository: https://github.com/piemapping/sendgrid-go.git
Documentation: pkg.go.dev

# README

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)

# Packages

No description provided by the author
No description provided by the author

# Functions

API sets up the request to the SendGrid API, this is main interface.
GetRequest returns a default request object.

# Constants

No description provided by the author