README
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 * as s3 from '@aws-cdk/aws-s3';
import * as actions from '@aws-cdk/aws-ses-actions';
const bucket = new s3.Bucket(this, 'Bucket');
const topic = new sns.Topic(this, 'Topic');
new ses.ReceiptRuleSet(this, 'RuleSet', {
rules: [
{
recipients: ['hello@aws.com'],
actions: [
new actions.AddHeader({
name: 'X-Special-Header',
value: 'aws',
}),
new actions.S3({
bucket,
objectKeyPrefix: 'emails/',
topic,
}),
],
},
{
recipients: ['aws.com'],
actions: [
new actions.Sns({
topic,
}),
],
},
],
});
Alternatively, rules can be added to a rule set:
const ruleSet = new ses.ReceiptRuleSet(this, 'RuleSet');
const awsRule = ruleSet.addRule('Aws', {
recipients: ['aws.com'],
});
And actions to rules:
import * as actions from '@aws-cdk/aws-ses-actions';
declare const awsRule: ses.ReceiptRule;
declare const topic: sns.Topic;
awsRule.addAction(new actions.Sns({
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:
new ses.ReceiptRuleSet(this, 'RuleSet', {
dropSpam: 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:
new ses.ReceiptFilter(this, 'Filter', {
ip: '1.2.3.4/16', // Will be blocked
});
An allow list filter is also available:
new ses.AllowListReceiptFilter(this, '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.