Skip to content

Commit 03fc3ad

Browse files
committed
Update forwarder to use AWS SDK v3
1 parent f0e76a3 commit 03fc3ad

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

index.js

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use strict";
22

3-
var AWS = require('aws-sdk');
3+
const { S3Client, CopyObjectCommand, GetObjectCommand } = require("@aws-sdk/client-s3");
4+
const { SESClient, SendRawEmailCommand } = require("@aws-sdk/client-ses");
45

56
console.log("AWS Lambda SES Forwarder // @arithmetric // Version 5.1.0");
67

@@ -160,19 +161,19 @@ exports.fetchMessage = function(data) {
160161
data.config.emailKeyPrefix + data.email.messageId
161162
});
162163
return new Promise(function(resolve, reject) {
163-
data.s3.copyObject({
164+
data.s3.send(new CopyObjectCommand({
164165
Bucket: data.config.emailBucket,
165166
CopySource: data.config.emailBucket + '/' + data.config.emailKeyPrefix +
166167
data.email.messageId,
167168
Key: data.config.emailKeyPrefix + data.email.messageId,
168169
ACL: 'private',
169170
ContentType: 'text/plain',
170171
StorageClass: 'STANDARD'
171-
}, function(err) {
172+
}), function(err) {
172173
if (err) {
173174
data.log({
174175
level: "error",
175-
message: "copyObject() returned error:",
176+
message: "CopyObjectCommand() returned error:",
176177
error: err,
177178
stack: err.stack
178179
});
@@ -181,21 +182,21 @@ exports.fetchMessage = function(data) {
181182
}
182183

183184
// Load the raw email from S3
184-
data.s3.getObject({
185+
data.s3.send(new GetObjectCommand({
185186
Bucket: data.config.emailBucket,
186187
Key: data.config.emailKeyPrefix + data.email.messageId
187-
}, function(err, result) {
188+
}), async function(err, result) {
188189
if (err) {
189190
data.log({
190191
level: "error",
191-
message: "getObject() returned error:",
192+
message: "GetObjectCommand() returned error:",
192193
error: err,
193194
stack: err.stack
194195
});
195196
return reject(
196197
new Error("Error: Failed to load message body from S3."));
197198
}
198-
data.emailData = result.Body.toString();
199+
data.emailData = await result.Body.transformToString();
199200
return resolve(data);
200201
});
201202
});
@@ -296,7 +297,7 @@ exports.sendMessage = function(data) {
296297
Destinations: data.recipients,
297298
Source: data.originalRecipient,
298299
RawMessage: {
299-
Data: data.emailData
300+
Data: Buffer.from(data.emailData)
300301
}
301302
};
302303
data.log({
@@ -306,19 +307,19 @@ exports.sendMessage = function(data) {
306307
data.recipients.join(", ") + "."
307308
});
308309
return new Promise(function(resolve, reject) {
309-
data.ses.sendRawEmail(params, function(err, result) {
310+
data.ses.send(new SendRawEmailCommand(params), function(err, result) {
310311
if (err) {
311312
data.log({
312313
level: "error",
313-
message: "sendRawEmail() returned error.",
314+
message: "SendRawEmailCommand() returned error.",
314315
error: err,
315316
stack: err.stack
316317
});
317318
return reject(new Error('Error: Email sending failed.'));
318319
}
319320
data.log({
320321
level: "info",
321-
message: "sendRawEmail() successful.",
322+
message: "SendRawEmailCommand() successful.",
322323
result: result
323324
});
324325
resolve(data);
@@ -351,9 +352,9 @@ exports.handler = function(event, context, callback, overrides) {
351352
context: context,
352353
config: overrides && overrides.config ? overrides.config : defaultConfig,
353354
log: overrides && overrides.log ? overrides.log : console.log,
354-
ses: overrides && overrides.ses ? overrides.ses : new AWS.SES(),
355+
ses: overrides && overrides.ses ? overrides.ses : new SESClient(),
355356
s3: overrides && overrides.s3 ?
356-
overrides.s3 : new AWS.S3({signatureVersion: 'v4'})
357+
overrides.s3 : new S3Client({signatureVersion: 'v4'})
357358
};
358359
Promise.series(steps, data)
359360
.then(function(data) {

0 commit comments

Comments
 (0)