【发布时间】:2016-12-24 10:29:10
【问题描述】:
我真的很困惑如何设置 Amazon SES 电子邮件的状态;退回邮件、投诉和/或投递与 node.js > 使用SNS 转发。我尝试关注他们的Documentation
- 我首先在 SNS 中创建了一个主题
- 我转到发件人的电子邮件,在通知选项卡中将退回邮件/投诉和投递转发到创建的主题。
- 然后我尝试在 Node.js 中订阅该主题
所以这里的第一个问题是,我不知道在下面的代码中将什么作为EndPoint 放入(我最终放置了我正在使用的区域的 SNS 端点) :
let AWS = require('aws-sdk');
AWS.config.loadFromPath('config.json');
const sns:AWS.SNS = new AWS.SNS();
//subscribe to particular topic
let params:any = {
Protocol: 'https', /* required */ //http , https ,application
TopicArn: 'arn:aws:sns:us-west-2:528353458268:email-notification', /* required */ // topic you want to subscribe
Endpoint: 'https://sns.us-west-2.amazonaws.com' // the endpoint that you want to receive notifications.
};
sns.subscribe(params, function(err:any, data:any) {
if (err){
console.log(err);
}
else{
console.log(data);
}
});
从此,我收到了这个物品:
{ ResponseMetadata: { RequestId: 'badd5d44-6ac5-55a0-92d6-0c8d7c6ad14c' },
SubscriptionArn: 'pending confirmation' }
所以我想知道我是否在这里做错了什么以及如何确认subscription 到该主题?我虽然它会是自动的......
【问题讨论】:
-
Endpoint有一个指向您的服务器的 URL,它将接收通知。例如,您可以在名为“yoursite.com/bounce”的端点上创建一个端点并将其提供给 SNS。每次出现反弹时,您的服务器都会在该位置接到呼叫。您可以设置 SNS 发送的 http 请求类型。 -
您的
Endpoint需要作为公开的 Expressjs 路由存在(假设 Express,因为您提到了 Node)。在 SNS 控制台中设置订阅后,您需要处理传入请求Type=SubscriptionConfirmation。然后,您捕获在此请求中发送的 SubscribeURL 并导航到此密钥提供的 URL。在您遵循此建议之前,我建议您先看看我的回答,这只是让您到达您想去的地方的众多步骤之一。
标签: javascript node.js amazon-web-services amazon-sns amazon-ses