AWS setup
Create the SES, SNS, SQS and S3 resources with scripts/setup-aws.mjs.
sesameSend needs an SES configuration set that publishes events to SNS, an SQS queue that receives them, and a private S3 bucket for attachments. scripts/setup-aws.mjs creates all of it.
Credentials
Use the default AWS credential chain (environment variables or a profile). The IAM user needs SES, SNS, SQS, S3 and STS permissions.
Preview, then run
node scripts/setup-aws.mjs --dry-run # prints the planned calls, creates nothing
node scripts/setup-aws.mjs --verify you@example.com # sending side, plus a sandbox identity for your login emailIt is safe to re-run: it only creates what is missing and re-applies policies. It creates the SES configuration set with an SNS event destination, the SNS topic, the SQS events queue and its policy, a private S3 bucket, and the tracking sets. Copy the variables it prints into .env, then click the verification link SES emails you.
Receiving mail
Add --inbound and one or more --inbound-domain values:
node scripts/setup-aws.mjs --inbound --inbound-domain inbound.example.comThis also creates the inbound topic, queue, bucket policy and an SES receipt rule. If another receipt rule set is already active in the account, the script will not replace it unless you pass --activate-rule-set.
Flags
| Flag | Meaning |
|---|---|
--dry-run | Print the plan, touch nothing. Needs no credentials. |
--verify <email or domain> | Create an SES identity. Repeatable. |
--inbound, --inbound-domain <d> | Set up receiving. Repeatable. |
--prefix | Resource name prefix. Default opensend. |
--region | Default us-east-1. Other regions print a warning and will not work. |
--rule-set, --activate-rule-set | Name the receipt rule set; replace a different active one. |
--no-shared-sets | Skip the shared tracking sets. |
Variables it gives you
SES_CONFIGURATION_SET, SES_EVENTS_QUEUE_URL, ATTACHMENTS_BUCKET, and with --inbound, INBOUND_QUEUE_URL. Put them in .env or in your host's environment settings.
Sending works in us-east-1 only. Configuration sets and the event queue live there.