Amplify配置自定义域名邮箱发送验证码邮件
分步替换Amplify验证邮件的默认发件邮箱
1. 在AWS SES中完成自定义邮箱身份验证
- 登录AWS控制台,进入Amazon SES服务
- 左侧导航栏选择「已验证的身份」,点击「创建身份」
- 选择「电子邮件地址」,输入你的自定义邮箱
welcome@domain.com并创建身份 - 登录该邮箱,点击SES发送的验证链接完成身份确认(你的域名已验证,无需重复操作域名验证步骤)
2. 给Cognito关联角色添加SES发送权限
- 进入IAM控制台,找到Amplify项目对应Cognito用户池使用的角色(名称通常包含
cognito或amplify关键字) - 为该角色添加权限策略,可选择直接附加
AmazonSESFullAccess,或创建更精细的自定义策略仅允许指定邮箱发件:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ses:SendEmail", "Resource": "*", "Condition": { "StringEquals": { "ses:FromAddress": "welcome@domain.com" } } } ] }
3. 修改Cognito用户池的邮件发件配置
- 进入AWS Cognito控制台,找到Amplify绑定的用户池
- 左侧导航栏选择「消息自定义」,切换到「电子邮件」标签页
- 在「发件人」区域选择「自定义发件人」,填入已验证的
welcome@domain.com,保存配置
4. 更新Lambda自定义消息函数的发件人参数
- 进入AWS Lambda控制台,打开你配置的自定义消息函数
- 在代码中找到邮件发送逻辑,将
Source字段的值替换为welcome@domain.com,示例代码片段:
import boto3 ses = boto3.client('ses') def lambda_handler(event, context): # 自定义消息内容逻辑 ses.send_email( Source='welcome@domain.com', Destination={ 'ToAddresses': [event['request']['userAttributes']['email']] }, Message={ 'Subject': {'Data': '账号验证通知'}, 'Body': {'Html': {'Data': event['response']['emailMessage']}} } ) return event
- 确保Lambda函数的执行角色也拥有SES发送权限
5. 测试验证流程
- 在Amplify项目中触发用户注册或邮箱验证操作
- 检查目标邮箱,确认邮件发件人为
welcome@domain.com,且内容符合自定义配置
内容的提问来源于stack exchange,提问作者Alexandre FERREIRA
相关产品推荐
相关产品推荐

