我正在编写通过Amazon服务发送电子邮件的Java应用程序,这很好。但现在,我需要检索电子邮件发送的统计数字,根据电子邮件ID的基础。
因此,我使用CloudWatch并将通知传递给SNS。然而,我无法推断如何根据对Web服务的显式请求获取统计数据。SNS端点能够根据需要分派数据。当我想从我的应用程序上为stats.发出明确的服务请求时
S3服务用于存储。我是否需要以某种方式将统计数据存储在上面,以便以后可以查询它?有任何决议和细节被认可吗?
发布于 2017-02-24 21:14:43
好吧,这就是我得到发送数据的方式。当涉及到Amazon 时,它给出的发送统计信息非常有限,而不是指向特定发送的电子邮件。
然后,当涉及到Amazon 时,它给您提供了与SES非常相似的统计数据,即它给您一个机会使统计日期看起来精确到分钟的长度。这意味着,如果你知道当你通过SES发送电子邮件时,通过将它存储在DB上,你就可以估计出哪一封邮件属于哪封邮件。
然后,您可以使用Amazon 和Amazon S3相结合。这就是我降落的地方。火软管是一种流,它将统计信息推送到S3存储中。SES提供的配置集允许您附加它。S3存储任何您喜欢的东西,包括电子邮件发送统计信息。你可以拥有最多5个统计数据:
这些统计数据存储在文件中,您可以使用Amazon的SDK访问和读取这些文件,这些文件属于Java语言.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"
]
}
}
}仅此而已。
发布于 2017-02-20 10:43:38
你好,根据我的理解,AWS是最好的方法。AWS Dynamo DB是一个与sql无关的数据库。发送电子邮件后,您可以存储结果(emailId,如果您需要时间等)通过使用SNS或nay函数进入Dynamo。您可以向dynamo发出一个查询以获取统计数据。
如果您想使用S3桶方式,则需要维护一个json文件,并且每次都需要覆盖该文件。
https://stackoverflow.com/questions/42304704
复制相似问题