Reference doc for the `sst.aws.Email` component.
The Email
component lets you send emails in your app.
It uses Amazon Simple Email Service.
You can configure it to send emails from a specific email address or from any email addresses in a domain.
By default, new AWS SES accounts are in the sandbox mode and can only send email to verified email addresses and domains. It also limits your account has to a sending quota. To remove these restrictions, you need to request production access.
Sending from an email address
For using an email address as the sender, you need to verify the email address.
const email = new sst.aws.Email("MyEmail", { sender: "spongebob@example.com",});
Sending from a domain
When you use a domain as the sender, you’ll need to verify that you own the domain.
new sst.aws.Email("MyEmail", { sender: "example.com"});
Configuring DMARC
new sst.aws.Email("MyEmail", { sender: "example.com", dmarc: "v=DMARC1; p=quarantine; adkim=s; aspf=s;"});
Link to a resource
You can link it to a function or your Next.js app to send emails.
const api = new sst.aws.Function("MyApi", { handler: "sender.handler", link: [email]});
Now in your function you can use the AWS SES SDK to send emails.
import { Resource } from "sst";import { SESv2Client, SendEmailCommand } from "@aws-sdk/client-sesv2";
const client = new SESv2Client();
await client.send( new SendEmailCommand({ FromEmailAddress: Resource.MyEmail.sender, Destination: { ToAddresses: ["patrick@example.com"] }, Content: { Simple: { Subject: { Data: "Hello World!" }, Body: { Text: { Data: "Sent from my SST app." } } } } }));
Constructor
new Email(name, args, opts?)
Parameters
-
name
string
-
args
EmailArgs
-
opts?
ComponentResourceOptions
EmailArgs
dmarc?
Type Input
<
string
>
Default “v=DMARC1; p=none;“
The DMARC policy for the domain. This’ll create a DNS record with the given DMARC policy.
Only specify this if you are using a domain name as the sender
.
{ dmarc: "v=DMARC1; p=quarantine; adkim=s; aspf=s;"}
dns?
Type Input
<
false
|
sst.aws.dns
|
sst.cloudflare.dns
|
sst.vercel.dns
>
Default sst.aws.dns
The DNS adapter you want to use for managing DNS records. Only specify this if you
are using a domain name as the sender
.
Specify the hosted zone ID for the domain.
{ dns: sst.aws.dns({ zone: "Z2FDTNDATAQYW2" })}
Domain is hosted on Cloudflare.
{ dns: sst.cloudflare.dns()}
sender
Type Input
<
string
>
The email address or domain name that you want to send emails from.
Using an email address as the sender. You’ll need to verify the email address. When you deploy your app, you will receive an email from AWS SES with a link to verify the email address.
{ sender: "john.smith@gmail.com"}
Using a domain name as the sender. You’ll need to verify that you own the domain. Once you verified, you can send emails from any email addresses in the domain.
To verify the domain, you need to add the verification records to your domain’s DNS.
This can be done automatically for the supported dns
adapters.
{ sender: "example.com"}
If the domain is hosted on Cloudflare.
{ sender: "example.com", dns: sst.cloudflare.dns()}
transform?
transform.identity?
Type EmailIdentityArgs
|
(
args
:
EmailIdentityArgs
,
opts
:
ComponentResourceOptions
,
name
:
string
)
=>
void
Transform the SES identity resource.
Properties
nodes
nodes.identity
Type EmailIdentity
The Amazon SES identity.
sender
Type Output
<
string
>
The sender email address or domain name.
SDK
Use the SDK in your runtime to interact with your infrastructure.
Links
This is accessible through the Resource
object in the SDK.
-
sender
string
The sender email address or domain name.