import { StackContext, Function, use } from "sst/constructs";
import * as ses from "aws-cdk-lib/aws-ses";
import { Lambda, LambdaInvocationType } from "aws-cdk-lib/aws-ses-actions";

export function Email({ stack }: StackContext) {
  const emailReceivingFunction = new Function(
    stack,
    "email-receiving-function",
    {
      handler: "path-to-your-function.handler",
    }
  );

  new ses.ReceiptRuleSet(stack, `InboundEmailRuleset`, {
    rules: [
      {
        enabled: true,
        receiptRuleName: "InboundEmailLambda",
        recipients: ["your-domain.com"],
        actions: [
          new Lambda({
            function: emailReceivingFunction,
            invocationType: LambdaInvocationType.EVENT,
          }),
        ],
        // Enable this to block spam emails if needed for your use case
        // scanEnabled: true,
      },
    ],
  });
}