39 lines
929 B
TypeScript
39 lines
929 B
TypeScript
|
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 = {
|
||
|
body: string;
|
||
|
subject: string;
|
||
|
recipients: string[];
|
||
|
};
|
||
|
|
||
|
export async function sendEmail({ body, subject, recipients }: SendEmailParams) {
|
||
|
const request: SendEmailRequest = {
|
||
|
Destination: { ToAddresses: recipients },
|
||
|
Message: {
|
||
|
Body: {
|
||
|
Text: {
|
||
|
Charset: "UTF-8",
|
||
|
Data: body,
|
||
|
},
|
||
|
},
|
||
|
Subject: {
|
||
|
Charset: "UTF-8",
|
||
|
Data: subject,
|
||
|
},
|
||
|
},
|
||
|
Source: serverRuntimeConfig.awsSes.fromEmail,
|
||
|
};
|
||
|
|
||
|
await ses.sendEmail(request).promise();
|
||
|
}
|