如果您在使用AWS Cognito时遇到在创建用户时有时无法发送电子邮件的问题,可以考虑使用以下代码示例:
{
"cognito": {
"userPoolId": "USER_POOL_ID",
"clientId": "CLIENT_ID",
"region": "REGION"
},
"ses": {
"region": "REGION",
"receiptRuleSetName": "SES_RECEIPT_RULE_SET_NAME"
}
}
const AWS = require('aws-sdk');
exports.handler = async (event, context, callback) => {
const ses = new AWS.SES({
region: process.env.COGNITO_REGION
});
const userData = event.request.userAttributes;
const emailParams = {
Destination: {
ToAddresses: [
userData.email
]
},
Message: {
Body: {
Html: {
Charset: "UTF-8",
Data: "Welcome to my app!
You can now login with your email address and password.
"
}
},
Subject: {
Charset: "UTF-8",
Data: "Welcome to my app!"
}
},
Source: "myapp@example.com"
};
try {
await ses.sendEmail(emailParams);
console.log("Email sent successfully to " + userData.email);
callback(null, event);
} catch (err) {
console.log("Error sending email: " + err);
callback(err);
}
};
通过上述方式发送电子邮件,即使AWS Cognito管理创建用户时有时无法发送电子邮件,也能保证用户接收到邮件。