{"id":19188785,"url":"https://github.com/miquido/terraform-ses-email-forwarder-lambda","last_synced_at":"2025-08-15T21:41:07.469Z","repository":{"id":223452185,"uuid":"690904532","full_name":"miquido/terraform-ses-email-forwarder-lambda","owner":"miquido","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-19T14:08:14.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-23T03:42:21.715Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miquido.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-13T05:52:25.000Z","updated_at":"2023-09-13T05:53:20.000Z","dependencies_parsed_at":"2025-02-23T03:42:23.563Z","dependency_job_id":"587bf959-92c7-4229-9ff4-f33a84f34c4c","html_url":"https://github.com/miquido/terraform-ses-email-forwarder-lambda","commit_stats":null,"previous_names":["miquido/terraform-ses-email-forwarder-lambda"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/miquido/terraform-ses-email-forwarder-lambda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2Fterraform-ses-email-forwarder-lambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2Fterraform-ses-email-forwarder-lambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2Fterraform-ses-email-forwarder-lambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2Fterraform-ses-email-forwarder-lambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miquido","download_url":"https://codeload.github.com/miquido/terraform-ses-email-forwarder-lambda/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2Fterraform-ses-email-forwarder-lambda/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270632078,"owners_count":24619413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T11:26:02.231Z","updated_at":"2025-08-15T21:41:07.409Z","avatar_url":"https://github.com/miquido.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- This file was automatically generated by the `build-harness`. Make all changes to `README.yaml` and run `make readme` to rebuild this file. --\u003e\n[![Miquido][logo]](https://www.miquido.com/)\n\n# terraform-ses-email-forwarder-lambda\n\n\nLambda used to forward messages received by SES and S3 to an external mailbox\n---\n**Terraform Module**\n\n\nGitLab Repository: https://gitlab.com/miquido/terraform/terraform-ses-email-forwarder-lambda\n\n## Usage\n\n\nTerraform:\n\n```hcl\nmodule \"ses-email-forwarder-lambda\" {\n  source = \"git::ssh://git@gitlab.com:miquido/terraform/terraform-ses-email-forwarder-lambda.git?ref=master\"\n\n  name                           = \"main\"\n  namespace                      = \"project\"\n  stage                          = \"example\"\n  ses_region                     = \"eu-west-1\"\n  mail_sender                    = \"noreply-forwarder@example.com\"\n  mail_recipient                 = \"example@example.com\"\n  mail_s3_bucket                 = aws_s3_bucket.example.id\n  mail_s3_bucket_prefix          = \"emails/example.com/\"\n  reserved_concurrent_executions = -1\n}\n```\n\n### Developer notes\n\n* It is recommended to set `MailSender` environment variable carefully to not create email loop in case of receving bounce message (which will be forwarded again, and again..)\n* Highly based on: https://aws.amazon.com/blogs/messaging-and-targeting/forward-incoming-email-to-an-external-destination/\n\u003c!-- markdownlint-disable --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.13 |\n| \u003ca name=\"requirement_archive\"\u003e\u003c/a\u003e [archive](#requirement\\_archive) | \u003e= 1.2 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | ~\u003e 4.7 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_archive\"\u003e\u003c/a\u003e [archive](#provider\\_archive) | \u003e= 1.2 |\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | ~\u003e 4.7 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_label\"\u003e\u003c/a\u003e [label](#module\\_label) | git::https://github.com/cloudposse/terraform-terraform-label.git | 0.8.0 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudwatch_log_group.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |\n| [aws_iam_role.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |\n| [aws_lambda_alias.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_alias) | resource |\n| [aws_lambda_function.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function) | resource |\n| [aws_lambda_permission.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission) | resource |\n| [archive_file.lambda](https://registry.terraform.io/providers/hashicorp/archive/latest/docs/data-sources/file) | data source |\n| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |\n| [aws_iam_policy_document.assume_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_attributes\"\u003e\u003c/a\u003e [attributes](#input\\_attributes) | Additional attributes (e.g. `1`) | `list(string)` | `[]` | no |\n| \u003ca name=\"input_delimiter\"\u003e\u003c/a\u003e [delimiter](#input\\_delimiter) | Delimiter to be used between `namespace`, `stage`, `name` and `attributes` | `string` | `\"-\"` | no |\n| \u003ca name=\"input_log_retention\"\u003e\u003c/a\u003e [log\\_retention](#input\\_log\\_retention) | Specifies the number of days you want to retain log events in the specified log group | `number` | `7` | no |\n| \u003ca name=\"input_mail_recipient\"\u003e\u003c/a\u003e [mail\\_recipient](#input\\_mail\\_recipient) | Email address used as \"To\" value to send an email | `string` | n/a | yes |\n| \u003ca name=\"input_mail_s3_bucket\"\u003e\u003c/a\u003e [mail\\_s3\\_bucket](#input\\_mail\\_s3\\_bucket) | The ID of the bucket where SES saves raw received email messages | `string` | n/a | yes |\n| \u003ca name=\"input_mail_s3_bucket_prefix\"\u003e\u003c/a\u003e [mail\\_s3\\_bucket\\_prefix](#input\\_mail\\_s3\\_bucket\\_prefix) | Key prefix of the email objects used to store emails by SES (should NOT end with a trailing slash `/`) | `string` | n/a | yes |\n| \u003ca name=\"input_mail_sender\"\u003e\u003c/a\u003e [mail\\_sender](#input\\_mail\\_sender) | Email address used as \"From\" value to send an email | `string` | n/a | yes |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Solution name, e.g. 'app' or 'cluster' | `string` | `\"app\"` | no |\n| \u003ca name=\"input_namespace\"\u003e\u003c/a\u003e [namespace](#input\\_namespace) | Namespace, which could be your organization name, e.g. 'eg' or 'cp' | `string` | n/a | yes |\n| \u003ca name=\"input_reserved_concurrent_executions\"\u003e\u003c/a\u003e [reserved\\_concurrent\\_executions](#input\\_reserved\\_concurrent\\_executions) | The amount of reserved concurrent executions for this lambda function. A value of 0 disables lambda from being triggered and -1 removes any concurrency limitations. Defaults to Unreserved Concurrency Limits -1. See: https://docs.aws.amazon.com/lambda/latest/dg/scaling.html | `number` | `-1` | no |\n| \u003ca name=\"input_ses_region\"\u003e\u003c/a\u003e [ses\\_region](#input\\_ses\\_region) | Specifies the AWS region of SES to be used for sending emails. When not specified default aws provider region is used. | `string` | `\"\"` | no |\n| \u003ca name=\"input_stage\"\u003e\u003c/a\u003e [stage](#input\\_stage) | Stage, e.g. 'prod', 'staging', 'dev', or 'test' | `string` | n/a | yes |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Additional tags (e.g. `map('BusinessUnit','XYZ')` | `map(string)` | `{}` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_lambda_arn\"\u003e\u003c/a\u003e [lambda\\_arn](#output\\_lambda\\_arn) | The ARN of created AWS Lambda function |\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- markdownlint-disable --\u003e\n## Makefile Targets\n```text\nAvailable targets:\n\n  help                                Help screen\n  help/all                            Display help for all targets\n  help/short                          This help short screen\n  lint                                Lint Terraform code\n\n```\n\u003c!-- markdownlint-restore --\u003e\n\n\n## Developing\n\n1. Make changes in terraform files\n\n2. Regenerate documentation\n\n    ```bash\n    bash \u003c(git archive --remote=git@gitlab.com:miquido/terraform/terraform-readme-update.git master update.sh | tar -xO)\n    ```\n\n3. Run lint\n\n    ```\n    make lint\n    ```\n\n## Copyright\n\nCopyright © 2017-2022 [Miquido](https://miquido.com)\n\n\n\n### Contributors\n\n|  [![Konrad Obal][k911_avatar]][k911_homepage]\u003cbr/\u003e[Konrad Obal][k911_homepage] |\n|---|\n\n  [k911_homepage]: https://github.com/k911\n  [k911_avatar]: https://github.com/k911.png?size=150\n\n\n\n  [logo]: https://www.miquido.com/img/logos/logo__miquido.svg\n  [website]: https://www.miquido.com/\n  [gitlab]: https://gitlab.com/miquido\n  [github]: https://github.com/miquido\n  [bitbucket]: https://bitbucket.org/miquido\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiquido%2Fterraform-ses-email-forwarder-lambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiquido%2Fterraform-ses-email-forwarder-lambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiquido%2Fterraform-ses-email-forwarder-lambda/lists"}