收件人规则设置为将电子邮件放入动态 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。我该如何实现?
我期待做的事情是
有一个收件人规则,该规则规定任何到达 mysubdomain 的电子邮件都会调用 lambda 函数
Lambda 函数应该将电子邮件放入 s3 的子文件夹中
按照以下步骤实现您想要的...
创建单个 SES 规则以将所有电子邮件放入单个 S3 文件夹 unsorted_emails
(您可以任意命名)。
创建一个 Lambda 函数,将电子邮件放入适当的文件夹中。
将 unsorted_emails
设置为事件源以触发您的 lambda 函数。
现在,只要有新电子邮件添加到 unsorted_emails
,您的 lambda 函数就会被触发并将电子邮件移动到适当的文件夹中。
让我知道这些步骤是否有意义,如果您有任何问题,或者我是否可以澄清更多。
我正在尝试设置亚马逊 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。我该如何实现?
我期待做的事情是
有一个收件人规则,该规则规定任何到达 mysubdomain 的电子邮件都会调用 lambda 函数
Lambda 函数应该将电子邮件放入 s3 的子文件夹中
按照以下步骤实现您想要的...
创建单个 SES 规则以将所有电子邮件放入单个 S3 文件夹
unsorted_emails
(您可以任意命名)。创建一个 Lambda 函数,将电子邮件放入适当的文件夹中。
将
unsorted_emails
设置为事件源以触发您的 lambda 函数。现在,只要有新电子邮件添加到
unsorted_emails
,您的 lambda 函数就会被触发并将电子邮件移动到适当的文件夹中。
让我知道这些步骤是否有意义,如果您有任何问题,或者我是否可以澄清更多。