Amazon Simple Email Service Construct Library
---This module is part of the AWS Cloud Development Kit project.
Email receiving
Create a receipt rule set with rules and actions (actions can be found in the
@aws-cdk/aws-ses-actions
package):
import aws_cdk.aws_s3 as s3
import aws_cdk.aws_ses_actions as actions
bucket = s3.Bucket(self, "Bucket")
topic = sns.Topic(self, "Topic")
ses.ReceiptRuleSet(self, "RuleSet",
rules=[ses.ReceiptRuleOptions(
recipients=["hello@aws.com"],
actions=[
actions.AddHeader(
name="X-Special-Header",
value="aws"
),
actions.S3(
bucket=bucket,
object_key_prefix="emails/",
topic=topic
)
]
), ses.ReceiptRuleOptions(
recipients=["aws.com"],
actions=[
actions.Sns(
topic=topic
)
]
)
]
)
Alternatively, rules can be added to a rule set:
rule_set = ses.ReceiptRuleSet(self, "RuleSet")
aws_rule = rule_set.add_rule("Aws",
recipients=["aws.com"]
)
And actions to rules:
import aws_cdk.aws_ses_actions as actions
# aws_rule: ses.ReceiptRule
# topic: sns.Topic
aws_rule.add_action(actions.Sns(
topic=topic
))
When using addRule
, the new rule is added after the last added rule unless after
is specified.
Drop spams
A rule to drop spam can be added by setting dropSpam
to true
:
ses.ReceiptRuleSet(self, "RuleSet",
drop_spam=True
)
This will add a rule at the top of the rule set with a Lambda action that stops processing messages that have at least one spam indicator. See Lambda Function Examples.
Receipt filter
Create a receipt filter:
ses.ReceiptFilter(self, "Filter",
ip="1.2.3.4/16"
)
An allow list filter is also available:
ses.AllowListReceiptFilter(self, "AllowList",
ips=["10.0.0.0/16", "1.2.3.4/16"
]
)
This will first create a block all filter and then create allow filters for the listed ip addresses.