【发布时间】:2018-06-07 03:07:30
【问题描述】:
我正在尝试设置亚马逊 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 的子文件夹中
【问题讨论】:
-
是否可以为我的域设置一个规则集并使用 lambda 函数将其放入 s3 存储桶内的不同文件夹中?
-
是的 - 您应该有一个规则集,将所有电子邮件放入单个 S3 存储桶 (
unsorted_emails),然后在存储桶unsorted_emails上附加一个事件触发器,它会触发 lambda 函数移动将电子邮件放入必要的 S3 存储桶中。
标签: java amazon-web-services amazon-s3 aws-lambda amazon-ses