Skip to content

opsstation/terraform-aws-ses

Repository files navigation

Terraform-aws-ses

Terraform AWS Cloud SES Module

Table of Contents

Introduction

This Terraform module creates an AWS Simple Email Service (SES) along with additional configuration options.

Usage

To use this module, you should have Terraform installed and configured for AWS. This module provides the necessary Terraform configuration for creating AWS resources, and you can customize the inputs as needed. Below is an example of how to use this module:

Examples

module "ses" {
  source       = "git::https://github.com/opsstation/terraform-aws-ses.git?ref=v1.0.0"

  name         = local.name
  environment  = local.environment
  domain       = "opsstation.ca"
  enable_email = true
  emails       = []
  zone_id      = "XXXXXXXX7289RP"

  enable_mx         = true
  enable_spf_domain = true
}

Examples

For detailed examples on how to use this module, please refer to the examples directory within this repository.

License

This Terraform module is provided under the MIT License. Please see the LICENSE file for more details.

Author

Your Name Replace MIT and opsstation with the appropriate license and your information. Feel free to expand this README with additional details or usage instructions as needed for your specific use case.

Requirements

Name Version
terraform >= 1.5.0
aws >= 5.9.0

Providers

Name Version
aws >= 5.9.0

Modules

Name Source Version
labels git::https://github.com/opsstation/terraform-aws-labels.git v1.0.0

Resources

Name Type
aws_iam_access_key.default resource
aws_iam_user.default resource
aws_iam_user_policy.default resource
aws_route53_record.dkim resource
aws_route53_record.mx_receive resource
aws_route53_record.mx_send_mail_from resource
aws_route53_record.spf_domain resource
aws_route53_record.spf_mail_from resource
aws_ses_domain_dkim.default resource
aws_ses_domain_identity.default resource
aws_ses_domain_mail_from.default resource
aws_ses_email_identity.default resource
aws_ses_identity_policy.default resource
aws_ses_receipt_filter.default resource
aws_ses_template.default resource
aws_iam_policy_document.allow_iam_name_to_send_emails data source
aws_iam_policy_document.document data source
aws_region.current data source

Inputs

Name Description Type Default Required
cname_type CNAME type for Record Set. string "CNAME" no
domain Domain to use for SES. string "" no
emails Emails list to use for SES. list(string) [] no
enable_domain Control whether or not to enable domain identity for AWS SES. bool true no
enable_email Control whether or not to enable email identity for AWS SES. bool false no
enable_filter Control whether or not to enable receipt filter. bool false no
enable_mail_from Control whether or not to enable mail from domain. bool false no
enable_mx Control whether or not to enable mx DNS recodrds. bool false no
enable_policy Control whether identity policy create for SES. bool false no
enable_spf_domain Control whether or not to enable enable spf domain. bool false no
enable_template Control whether create a template for emails. bool false no
enabled Boolean indicating whether or not to create sns module. bool true no
environment Environment (e.g. prod, dev, staging). string "" no
filter_cidr The IP address or address range to filter, in CIDR notation. string "" no
filter_policy Block or Allow filter. string "" no
iam_name IAM username. string "" no
label_order Label order, e.g. name,application. list(any)
[
"name",
"environment"
]
no
mail_from_domain Subdomain (of the route53 zone) which is to be used as MAIL FROM address. string "" no
managedby ManagedBy, eg 'opsstation' string "opsstation" no
mx_type MX type for Record Set. string "MX" no
name Name (e.g. app or cluster). string "" no
repository Terraform current module repo string "https://github.com/opsstation/terraform-aws-ses" no
spf_domain_name n/a string "spf_domain" no
template_html The HTML body of the email. Must be less than 500KB in size, including both the text and HTML parts. string "" no
template_subject The subject line of the email. string "" no
text The email body that will be visible to recipients whose email clients do not display HTML. string "" no
txt_type Txt type for Record Set. string "TXT" no
zone_id Route53 host zone ID to enable SES. string "" no

Outputs

Name Description
domain_identity_arn ARN of the SES domain identity.
iam_access_key_id The access key ID.
iam_access_key_secret The access key secret.
id The domain name of the domain identity.