检索适用于 Amazon SES 服务的发送统计信息
Retrieving sending statistics applicable to Amazon SES service
我正在编写 Java 应用程序,它通过 Amazon SES 服务发送电子邮件,并且运行良好。但现在我需要根据电子邮件 ID 检索电子邮件发送统计数据。
因此,我使用 CloudWatch 并将通知传递给 SNS。然而,我无法推断出如何根据对 Web 服务的明确请求获取统计信息。 SNS 端点能够根据需要分派数据。 当我想从我的应用程序明确请求统计服务时。
S3 服务 用于存储。我是否需要以某种方式在其上存储统计信息,以便以后查询?
任何决议和细节都得到了赞赏?
您好,根据我的理解,AWS Dynamo DB 是您的最佳选择。 AWS Dynamo DB 是一个没有 sql 相关的数据库。发送电子邮件后,您可以使用 SNS 或 nay lambda 函数将结果(emailId,如果您需要时间等)存储到 Dynamo DB 中。您可以向 dynamo DB 发起查询以获取统计信息。
如果您想使用 S3 存储桶方式,您需要维护一个 json 文件,并且每次都需要覆盖该文件。
好吧,这就是我获取发送统计信息的方式。
当谈到 Amazon SES 时,它给你的发送统计数据非常有限;不指向特定的已发送电子邮件。
那么当谈到 Amazon Cloudwatch 时,它为您提供与 SES 非常相似的统计数据,它让您有机会使统计数据日期看起来更加精确分钟。这意味着如果您知道何时通过 SES 发送电子邮件,通过将其存储在数据库中,您可以估计哪个统计数据属于哪个电子邮件。
然后您可以将 Amazon Firehose 与 Amazon S3 结合使用。这是我着陆的地方。 Firehose 是一种将统计信息推送到 S3 存储的流。 SES 提供了 配置集 让您附加它。
S3 存储您喜欢的任何内容,包括电子邮件发送统计数据。您最多可以拥有 5 个统计数据:
- 发送
- 已送达
- 反弹
- 投诉
- 拒绝
统计数据存储在文件中,您可以使用 亚马逊的 SDK 与 Java 语言 相关的文件来访问和读取这些文件。 The way to query in Java
你得到的是JSON邮件发送统计文件,例如
{
"eventType":"Bounce",
"bounce":{
"bounceType":"Permanent",
"bounceSubType":"General",
"bouncedRecipients":[
{
"emailAddress":"recipient@example.com",
"action":"failed",
"status":"5.1.1",
"diagnosticCode":"smtp; 550 5.1.1 user unknown"
}
],
"timestamp":"2016-10-14T05:02:52.574Z",
"feedbackId":"EXAMPLE7c1923f27-ab0c24cb-5d9f-4e77-99b8-85e4cb3a33bb-000000",
"reportingMTA":"dsn; ses-example.com"
},
"mail":{
"timestamp":"2016-10-14T05:02:16.645Z",
"source":"sender@example.com",
"sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/sender@example.com",
"sendingAccountId":"123456789012",
"messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"destination":[
"recipient@example.com"
],
"headersTruncated":false,
"headers":[
{
"name":"From",
"value":"sender@example.com"
},
{
"name":"To",
"value":"recipient@example.com"
},
{
"name":"Subject",
"value":"Email Subject"
},
{
"name":"MIME-Version",
"value":"1.0"
},
{
"name":"Content-Type",
"value":"multipart/mixed; boundary=\"----=_Part_0_716996660.1476421336341\""
},
{
"name":"X-SES-MESSAGE-TAGS",
"value":"myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2"
}
],
"commonHeaders":{
"from":[
"sender@example.com"
],
"to":[
"recipient@example.com"
],
"messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"subject":"Email Subject"
},
"tags":{
"ses:configuration-set":[
"my-configuration-set"
],
"ses:source-ip":[
"192.0.2.0"
],
"ses:from-domain":[
"example.com"
],
"ses:caller-identity":[
"ses_user"
],
"myCustomTag1":[
"myCustomTagValue1"
],
"myCustomTag2":[
"myCustomTagValue2"
]
}
}
}
就是这样。
我正在编写 Java 应用程序,它通过 Amazon SES 服务发送电子邮件,并且运行良好。但现在我需要根据电子邮件 ID 检索电子邮件发送统计数据。
因此,我使用 CloudWatch 并将通知传递给 SNS。然而,我无法推断出如何根据对 Web 服务的明确请求获取统计信息。 SNS 端点能够根据需要分派数据。 当我想从我的应用程序明确请求统计服务时。
S3 服务 用于存储。我是否需要以某种方式在其上存储统计信息,以便以后查询? 任何决议和细节都得到了赞赏?
您好,根据我的理解,AWS Dynamo DB 是您的最佳选择。 AWS Dynamo DB 是一个没有 sql 相关的数据库。发送电子邮件后,您可以使用 SNS 或 nay lambda 函数将结果(emailId,如果您需要时间等)存储到 Dynamo DB 中。您可以向 dynamo DB 发起查询以获取统计信息。
如果您想使用 S3 存储桶方式,您需要维护一个 json 文件,并且每次都需要覆盖该文件。
好吧,这就是我获取发送统计信息的方式。 当谈到 Amazon SES 时,它给你的发送统计数据非常有限;不指向特定的已发送电子邮件。
那么当谈到 Amazon Cloudwatch 时,它为您提供与 SES 非常相似的统计数据,它让您有机会使统计数据日期看起来更加精确分钟。这意味着如果您知道何时通过 SES 发送电子邮件,通过将其存储在数据库中,您可以估计哪个统计数据属于哪个电子邮件。
然后您可以将 Amazon Firehose 与 Amazon S3 结合使用。这是我着陆的地方。 Firehose 是一种将统计信息推送到 S3 存储的流。 SES 提供了 配置集 让您附加它。 S3 存储您喜欢的任何内容,包括电子邮件发送统计数据。您最多可以拥有 5 个统计数据:
- 发送
- 已送达
- 反弹
- 投诉
- 拒绝
统计数据存储在文件中,您可以使用 亚马逊的 SDK 与 Java 语言 相关的文件来访问和读取这些文件。 The way to query in Java
你得到的是JSON邮件发送统计文件,例如
{
"eventType":"Bounce",
"bounce":{
"bounceType":"Permanent",
"bounceSubType":"General",
"bouncedRecipients":[
{
"emailAddress":"recipient@example.com",
"action":"failed",
"status":"5.1.1",
"diagnosticCode":"smtp; 550 5.1.1 user unknown"
}
],
"timestamp":"2016-10-14T05:02:52.574Z",
"feedbackId":"EXAMPLE7c1923f27-ab0c24cb-5d9f-4e77-99b8-85e4cb3a33bb-000000",
"reportingMTA":"dsn; ses-example.com"
},
"mail":{
"timestamp":"2016-10-14T05:02:16.645Z",
"source":"sender@example.com",
"sourceArn":"arn:aws:ses:us-east-1:123456789012:identity/sender@example.com",
"sendingAccountId":"123456789012",
"messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"destination":[
"recipient@example.com"
],
"headersTruncated":false,
"headers":[
{
"name":"From",
"value":"sender@example.com"
},
{
"name":"To",
"value":"recipient@example.com"
},
{
"name":"Subject",
"value":"Email Subject"
},
{
"name":"MIME-Version",
"value":"1.0"
},
{
"name":"Content-Type",
"value":"multipart/mixed; boundary=\"----=_Part_0_716996660.1476421336341\""
},
{
"name":"X-SES-MESSAGE-TAGS",
"value":"myCustomTag1=myCustomTagValue1, myCustomTag2=myCustomTagValue2"
}
],
"commonHeaders":{
"from":[
"sender@example.com"
],
"to":[
"recipient@example.com"
],
"messageId":"EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
"subject":"Email Subject"
},
"tags":{
"ses:configuration-set":[
"my-configuration-set"
],
"ses:source-ip":[
"192.0.2.0"
],
"ses:from-domain":[
"example.com"
],
"ses:caller-identity":[
"ses_user"
],
"myCustomTag1":[
"myCustomTagValue1"
],
"myCustomTag2":[
"myCustomTagValue2"
]
}
}
}
就是这样。