You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS密码重置场景:SNS与SES服务选型咨询

AWS密码重置场景:SNS vs SES选型建议

直接给结论:用SES(Simple Email Service)是你的最佳选择,原因如下:

  • SES是AWS专门为邮件发送打造的服务,支持模板定制、投递追踪、反垃圾合规等邮件专属功能,完全适配密码重置这类定向邮件通知的需求。
  • SNS(Simple Notification Service)是通用多渠道通知服务,虽然能发邮件,但核心优势是跨渠道推送(短信、APP通知等)。如果你的场景只需要发邮件,用SNS属于功能冗余,且SES在邮件投递可靠性、合规性上更专业。
  • 成本层面,SES的邮件发送成本比SNS更低,尤其适合批量发送场景。

下面是集成SES发送新密码的Lambda代码片段:

const AWS = require('aws-sdk');
const ses = new AWS.SES({ region: '你的AWS区域' }); // 例如us-east-1

// ... 你的现有代码逻辑 ...

const newPass = generatePassword();

// 构造SES邮件发送参数
const sendEmailParams = {
  Destination: {
    ToAddresses: [requestData.email]
  },
  Message: {
    Body: {
      Text: {
        Charset: 'UTF-8',
        Data: `你的新密码是:${newPass}\n请尽快登录并修改密码`
      }
    },
    Subject: {
      Charset: 'UTF-8',
      Data: '账户密码重置通知'
    }
  },
  Source: '你的已验证发件邮箱' // 必须是SES控制台中验证过的邮箱或域名
};

try {
  await ses.sendEmail(sendEmailParams).promise();
} catch (err) {
  console.error('邮件发送失败:', err);
  return new BadRequestError({ message: 'errors.failed-to-send-email' });
}

// ... 后续更新用户密码的代码 ...

注意:使用SES前需在AWS控制台验证发件邮箱/域名,并确保Lambda执行角色拥有ses:SendEmail权限。

内容的提问来源于stack exchange,提问作者Andrew Lisov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:37:00