Golang - Send Emails with AWS SES

To use AWS SES in a golang application, you will need to first install the AWS SDK for golang. You can do this by running the following command:

go get github.com/aws/aws-sdk-go

Once the AWS SDK for golang is installed, you can use the aws.SES package to send emails using AWS SES. Here is an example of how you can do this:
package main

import (

func main() {
    // Create a new AWS session
    sess, err := session.NewSession(&aws.Config{
        Region:      aws.String("us-east-1"),
        Credentials: credentials.NewStaticCredentials("ACCESS_KEY_ID", "SECRET_ACCESS_KEY", ""),
    if err != nil {

    // Create a new instance of the AWS SES service
    svc := ses.New(sess)

    // Set the sender and recipient email addresses
    from := "sender@example.com"
    to := "recipient@example.com"

    // Set the email subject and body
    subject := "Test email from AWS SES"
    body := "This is a test email sent from AWS SES"

    // Send the email
    result, err := svc.SendEmail(&ses.SendEmailInput{
        Destination: &ses.Destination{
            ToAddresses: []*string{
        Message: &ses.Message{
            Body: &ses.Body{
                Text: &ses.Content{
                    Charset: aws.String("UTF-8"),
                    Data:    aws.String(body),
            Subject: &ses.Content{
                Charset: aws.String("UTF-8"),
                Data:    aws.String(subject),
        Source: aws.String(from),
    if err != nil {

    // Print the response from AWS SES

Amazon Simple Email Service (SES) is a cloud-based email sending service designed to help digital marketers and application developers send marketing, notification, and transactional emails. It is a reliable and cost-effective service that provides businesses with the ability to send and receive emails using their own email addresses and domains.

With AWS SES, you can send a high volume of emails quickly and securely, and track the delivery of your messages. You can also customize the content of your emails with HTML and CSS, and integrate with other AWS services, such as Amazon S3 and Amazon SNS, to create a complete email solution.

AWS SES is a scalable and fully managed service that is designed to handle the challenges of email delivery, such as managing bounces and complaints, and ensuring compliance with industry standards and regulations. It also offers a number of features to help improve the deliverability of your emails, such as dedicated IP addresses, domain authentication, and email content analysis.

Overall, AWS SES is a powerful and flexible email sending service that can help businesses of all sizes manage and grow their email communications.

Edit this page on GitHub Updated at Thu, Dec 15, 2022