/go-ses

Amazon AWS Simple Email Service (SES) client for Go

Primary LanguageGoMIT LicenseMIT

go-ses

Lightweight implementation of AWS SES - fork from go-ses

Release Build Status Report codecov Go Sponsor Donate



Table of Contents


Installation

go-ses requires a supported release of Go.

go get -u github.com/mrz1836/go-ses

Documentation

View the generated documentation

GoDoc

Features

  • Send raw or html emails
  • Multiple to, cc, and bcc recipients
  • AWS4 signatures
Library Deployment

goreleaser for easy binary or library deployment to Github and can be installed via: brew install goreleaser.

The .goreleaser.yml file is used to configure goreleaser.

Use make release-snap to create a snapshot version of the release, and finally make release to ship to production.

Makefile Commands

View all makefile commands

make help

List of all current commands:

all                    Runs multiple commands
clean                  Remove previous builds and any test cache data
clean-mods             Remove all the Go mod cache
coverage               Shows the test coverage
godocs                 Sync the latest tag with GoDocs
help                   Show this help message
install                Install the application
install-go             Install the application (Using Native Go)
lint                   Run the Go lint application
release                Full production release (creates release in Github)
release                Runs common.release then runs godocs
release-snap           Test the full release (build binaries)
release-test           Full production test release (everything except deploy)
replace-version        Replaces the version in HTML/JS (pre-deploy)
run-examples           Runs all the examples
tag                    Generate a new tag and push (tag version=0.0.0)
tag-remove             Remove a tag if found (tag-remove version=0.0.0)
tag-update             Update an existing tag to current commit (tag-update version=0.0.0)
test                   Runs vet, lint and ALL tests
test-short             Runs vet, lint and tests (excludes integration tests)
test-travis            Runs all tests via Travis (also exports coverage)
test-travis-short      Runs unit tests via Travis (also exports coverage)
uninstall              Uninstall the application (and remove files)
vet                    Run the Go vet application

Examples & Tests

All unit tests and examples run via Travis CI and uses Go version 1.14.x. View the deployment configuration file.

Running Tests

  1. Set the environment variables $AWS_ACCESS_KEY_ID and $AWS_SECRET_KEY and $AWS_SES_ENDPOINT.
  2. Example SES Endpoint https://email.us-west-2.amazonaws.com
  3. Run go test -from=user@example.com, where user@example.com is a sender address that is verified in your Amazon SES account.

Run all tests (including integration tests)

make test

Run tests (excluding integration tests)

make test-short

Run the examples:

make run-examples

Benchmarks

Run the Go benchmarks:

make bench

Code Standards

Read more about this Go project's code standards.


Usage

View the examples


Maintainers

MrZ
MrZ

Contributing

Previous Contributors:

View the contributing guidelines and follow the code of conduct.

How can I help?

All kinds of contributions are welcome 🙌! The most basic way to show your support is to star 🌟 the project, or to raise issues 💬. You can also support this project by becoming a sponsor on GitHub 👏 or by making a bitcoin donation to ensure this journey continues indefinitely! 🚀


License

License

Note: the public API is experimental and subject to change until further notice.

Usage

Documentation: go-ses on Sourcegraph.

Example: example_test.go (Sourcegraph):