Envello
Tutorial

Sending transactional email from a Go service

Envello Team·2026-07-17·5 min read

Envello has a real Go SDK, unlike Rails, and it's installable today directly from the monorepo path with go get, since Go's module system can pull from any git path, not just a registry.

Using the SDK

  • go get github.com/deepak-mishra/Envello/packages/sdk-go
  • client := envello.NewClient("env_live_...")
  • resp, err := client.SendEmail(ctx, envello.SendEmailRequest{ From: "Acme <[email protected]>", To: recipient, Subject: "Welcome!", Html: renderedHTML })

The honest caveat

This isn't a tagged, versioned module the way a mature Go dependency usually is, it's pulled directly from a path inside Envello's monorepo. That works fine with go get and go.mod today, but expect the import path or module boundaries to potentially change before this stabilizes into its own versioned repository. Pin a specific commit if that matters for your build reproducibility.

Without the SDK

net/http covers this in a few lines if you'd rather not take the dependency at this stage: build the JSON body with encoding/json, POST to https://api.envello.dev/emails with an Authorization: Bearer header, and check resp.StatusCode before assuming success. For a service that only sends a handful of transactional email types, this is a reasonable choice over an unversioned dependency.

Envello

EU-hosted transactional email, done right by default.