AWS SES (Simple Email Service) 是一个强大的电子邮件服务,但有时发送电子邮件可能不会立即完成。这是因为它在发送电子邮件时使用了异步调用。这意味着,一旦请求发送电子邮件被接受并验证,发送电子邮件的处理程序就会从请求主体分离,并在发送电子邮件时处理另一个请求。
要在 AWS SES API 中发送电子邮件,您可以使用 AWS SDK。这是一个来自 AWS 提供的一些可用于各种编程语言的拥有的 SDK 的示例代码:
// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set region AWS.config.update({region: 'us-west-2'});
// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set region AWS.config.update({region: 'us-west-2'});
// Create sendEmail params var params = { Destination: { /* required / CcAddresses: [ 'EMAIL_ADDRESS', / more items / ], ToAddresses: [ 'EMAIL_ADDRESS', / more items / ] }, Message: { / required / Body: { / required / Html: { Charset: "UTF-8", Data: "HTML_FORMAT_BODY" }, Text: { Charset: "UTF-8", Data: "TEXT_FORMAT_BODY" } }, Subject: { Charset: 'UTF-8', Data: 'Test email' } }, Source: 'SENDER_EMAIL_ADDRESS', / required / ReplyToAddresses: [ 'EMAIL_ADDRESS', / more items */ ], };
// Create the promise and SES service object var sendPromise = new AWS.SES({apiVersion: '2010-12-01'}).sendEmail(params).promise();
// Handle promise's fulfilled/rejected states sendPromise.then( function(data) { console.log(data.MessageId); }).catch( function(err) { console.error(err, err.stack); });
注意,这个示例代码中的 sendEmail 调用不会立即发送电子邮件,它返回一个 promise 对象,您需要将它解决或拒绝以处理异步请求。 如果您需要 sendEmail 立即发送电子邮件,请添加以下代码:
sendPromise.then(function (data) { console.log(data.MessageId); }).catch(function (err) { console.error(err, err.stack); }).finally(function () { // Add new Promise and consume it
上一篇:AWSSES不会立即发送邮件。