shellphone.app/integrations/aws-ses.ts

47 lines
1.0 KiB
TypeScript
Raw Normal View History

2021-09-15 22:56:16 +00:00
import type { SendEmailRequest } from "aws-sdk/clients/ses";
import { Credentials, SES } from "aws-sdk";
import { getConfig } from "blitz";
const { serverRuntimeConfig } = getConfig();
const credentials = new Credentials({
accessKeyId: serverRuntimeConfig.awsSes.accessKeyId,
secretAccessKey: serverRuntimeConfig.awsSes.secretAccessKey,
});
const ses = new SES({ region: serverRuntimeConfig.awsSes.awsRegion, credentials });
type SendEmailParams = {
2021-10-30 11:37:16 +00:00
text?: string;
html: string;
2021-09-15 22:56:16 +00:00
subject: string;
recipients: string[];
};
export async function sendEmail({ text, html, subject, recipients }: SendEmailParams) {
2021-09-15 22:56:16 +00:00
const request: SendEmailRequest = {
Destination: { ToAddresses: recipients },
Message: {
Body: {
Html: {
Charset: "UTF-8",
Data: html,
2021-09-15 22:56:16 +00:00
},
},
Subject: {
Charset: "UTF-8",
Data: subject,
},
},
Source: serverRuntimeConfig.awsSes.fromEmail,
};
2021-10-31 15:16:29 +00:00
if (text) {
request.Message.Body.Text = {
Charset: "UTF-8",
Data: text,
};
}
2021-09-15 22:56:16 +00:00
await ses.sendEmail(request).promise();
}