使用AWS SES在Lambda(Node.js)发邮件时遇“缺少@domain后缀”错误
问题原因
错误InvalidParameterValue: Missing final '@domain'的核心原因是SES的Source参数格式不符合要求,SES要求发送源必须是完整的邮箱地址(包含@和域名),而你当前传入的是单纯的域名readwise.mksmohan.com,缺少邮箱前缀部分。
解决方案
将Source字段修改为带前缀的完整邮箱地址,比如no-reply@readwise.mksmohan.com(前缀可自定义,只要域名已在SES验证即可)。
修改后的代码示例:
const params = { Destination: { "ToAddresses": ["alpha.prime0502@gmail.com"] }, Message: { Body: { Html: { "Charset": "UTF-8", "Data": resetPasswordEmail(name,passcode) }, }, Subject: { "Data": subject } }, "Source": "no-reply@readwise.mksmohan.com", // 修改为完整邮箱地址 }; try { const result = await ses.sendEmail(params).promise(); return result; } catch (error) { console.error(error); }
额外说明
- 由于你已完成域名级验证,该域名下所有自定义前缀的邮箱都可作为发送源,无需单独验证单个邮箱。
- 若后续仍有问题,检查Lambda执行角色是否配置了
ses:SendEmail的权限。
内容的提问来源于stack exchange,提问作者Mohan kumar SAH
相关产品推荐
相关产品推荐

