Categorygithub.com/mattbaird/gochimp
modulepackage
0.0.0-20200820164431-f1082bcdf63f
Repository: https://github.com/mattbaird/gochimp.git
Documentation: pkg.go.dev

# README

gochimp

GoDoc

Go based API for Mailchimp, starting with Mandrill.

To run tests, set a couple env variables. (replacing values with your own mandrill credentials):

$ export MANDRILL_KEY=111111111-1111-1111-1111-111111111
$ export [email protected]

Mandrill Status

  • API Feature complete on Oct 26/2012
  • Adding tests, making naming conventions consistent, and refactoring error handling

Chimp Status

  • Not started

Getting Started

Below is an example approach to rendering custom content into a Mandrill template called "welcome email" and sending the rendered email.

package main

import (
	"fmt"
	"github.com/mattbaird/gochimp"
	"os"
)

func main() {
	apiKey := os.Getenv("MANDRILL_KEY")
	mandrillApi, err := gochimp.NewMandrill(apiKey)

	if err != nil {
		fmt.Println("Error instantiating client")
	}

	templateName := "welcome email"
	contentVar := gochimp.Var{"main", "<h1>Welcome aboard!</h1>"}
	content := []gochimp.Var{contentVar}

	_, err = mandrillApi.TemplateAdd(templateName, fmt.Sprintf("%s", contentVar.Content), true)
	if err != nil {
		fmt.Println("Error adding template: %v", err)
		return
	}
	defer mandrillApi.TemplateDelete(templateName)
	renderedTemplate, err := mandrillApi.TemplateRender(templateName, content, nil)

	if err != nil {
		fmt.Println("Error rendering template: %v", err)
		return
	}

	recipients := []gochimp.Recipient{
		gochimp.Recipient{Email: "[email protected]"},
	}

	message := gochimp.Message{
		Html:      renderedTemplate,
		Subject:   "Welcome aboard!",
		FromEmail: "[email protected]",
		FromName:  "Boss Man",
		To:        recipients,
	}

	_, err = mandrillApi.MessageSend(message, false)

	if err != nil {
		fmt.Println("Error sending message")
	}
}

# Packages

# Functions

see https://mandrillapp.com/api/docs/ currently supporting json output formats.

# Constants

format string for time.Format.

# Structs

Mailchimp does not conform to RFC3339 format, so we need custom UnmarshalJSON.
four types of error Invalid_Key - The provided API key is not a valid Mandrill API key ValidationError - The parameters passed to the API call are invalid or not provided when required GeneralError - An unexpected error occurred processing the request.
MessageSendOptions wraps options for MessageSend API call.

# Interfaces