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.X.X
is a breaking change for the entire library.
Version 3.X.X 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
package main
import (
"fmt"
"github.com/sendgrid/sendgrid-go"
"github.com/sendgrid/sendgrid-go/helpers/mail"
"os"
)
func main() {
from := mail.NewEmail("Example User", "test@example.com")
subject := "Hello World from the SendGrid Go Library"
to := mail.NewEmail("Example User", "test@example.com")
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
package main
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)