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
56console . 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