收件人规则设置为将电子邮件放入动态 s3 存储桶亚马逊

Recipient rule set to put emails into dynamic s3 bucket Amazon

我正在尝试设置亚马逊 SES 收件人规则集以将电子邮件放入 s3 存储桶。我创建了一个 s3 存储桶,我希望这些邮件根据电子邮件 ID 发送到文件夹中。例如,如果一封电子邮件到达 1@mydomain.com,它应该进入 mytestbucket/1,如果它到达2@mydomain.com 它应该进入 mytestbucket/2.

    AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
    AmazonSimpleEmailServiceClient sesClient = new AmazonSimpleEmailServiceClient(awsCredentials);
    ;
    if (sesClient != null) {
        CreateReceiptRuleRequest req = new CreateReceiptRuleRequest();
        req.withRuleSetName(ruleSetName);
        ReceiptRule rule = new ReceiptRule();
        rule.setEnabled(true);
        rule.setName(customerIdString + "-email");
        rule.withRecipients(customerIdString + "@" + mydomain.com);
        List<ReceiptAction> actions = new ArrayList<ReceiptAction>();
        ReceiptAction action = new ReceiptAction();
        S3Action s3Action = new S3Action();
        s3Action.setBucketName(mytestbucket);
        s3Action.setObjectKeyPrefix(customerIdString);
        action.setS3Action(s3Action);
        actions.add(action);
        rule.setActions(actions);
        req.setRule(rule);
        CreateReceiptRuleResult response = sesClient.createReceiptRule(req);
        return true;
    }

每当我添加客户时,我都会调用此方法为我的活动规则集创建规则。但看起来只能添加 100 条规则。我的用例将至少用于 100 000。我该如何实现?

我期待做的事情是

  1. 有一个收件人规则,该规则规定任何到达 mysubdomain 的电子邮件都会调用 lambda 函数

  2. Lambda 函数应该将电子邮件放入 s3 的子文件夹中

按照以下步骤实现您想要的...

  1. 创建单个 SES 规则以将所有电子邮件放入单个 S3 文件夹 unsorted_emails(您可以任意命名)。

  2. 创建一个 Lambda 函数,将电子邮件放入适当的文件夹中。

  3. unsorted_emails 设置为事件源以触发您的 lambda 函数。

  4. 现在,只要有新电子邮件添加到 unsorted_emails,您的 lambda 函数就会被触发并将电子邮件移动到适当的文件夹中。

让我知道这些步骤是否有意义,如果您有任何问题,或者我是否可以澄清更多。