如何解决Cognito中更新用户邮箱时出现的LimitExceededException?
解决Cognito更新邮箱时的LimitExceededException问题
根据你提供的报错信息,问题核心是超出了AWS Cognito默认的每日邮件发送限额——默认限额按日重置,并非10/30分钟,所以限制会持续到次日。以下是具体解决方法:
配置自定义Amazon SES发送邮件
这是报错提示中的官方解决方案,步骤如下:- 登录AWS控制台,进入Amazon SES服务,先验证你用来发送验证码的域名或邮箱地址(需完成域名解析或邮箱验证)。
- 进入Cognito用户池管理页面,找到「消息自定义」选项,切换到「电子邮件」标签。
- 选择「使用自己的Amazon SES配置」,指定SES所在的AWS区域,以及已验证的SES身份(域名或邮箱)。
配置完成后,邮件发送会走你自己的SES配额,默认SES的每日限额远高于Cognito,后续还可根据需求申请更高配额。
优化验证码发送逻辑
- 前端添加严格请求限制:用户点击「发送验证码」后,设置至少60秒的冷却时间,禁止重复触发
Auth.updateUserAttributes请求,避免不必要的邮件发送消耗配额。 - 捕获
LimitExceededException错误,给用户明确提示,比如「今日验证码发送次数已达上限,请明日再尝试」,引导用户不要反复操作。 - 开发测试阶段跳过真实邮件发送:本地用Mock逻辑返回固定验证码(比如你提到的123456),或使用Cognito测试模式,避免消耗正式环境的邮件配额。
- 前端添加严格请求限制:用户点击「发送验证码」后,设置至少60秒的冷却时间,禁止重复触发
申请提升邮件发送限额
如果使用自定义SES后配额仍不够,或暂时不想切换SES,可在AWS控制台提交限额提升申请:- 进入对应服务(Cognito或SES)的配额页面,找到「请求提升配额」选项。
- 填写申请理由,说明业务场景、每日所需邮件发送量等信息,AWS审核通过后会提升配额。
内容的提问来源于stack exchange,提问作者Christian Rainer Sassmann
相关产品推荐
相关产品推荐

