2016-04-05 3 views
1

У меня есть сырые электронные письма в ведре S3. Я пишу функцию AWS Lambda, чтобы извлечь приложение .xls и сохранить его в другом ведре S3. До сих пор я лямбда читал сырое тело письма, но как я могу извлечь вложение?AWS Lambda: Как извлечь вложение (xls) из сырой электронной почты?

s3.getObject({ 
     Bucket: bucketName, 
     Key: sesNotification.mail.messageId 
    }, function(err, data) { 
     if (err) { 
      console.log(err, err.stack); 
      context.fail(); 
     } else { 
      console.log("Raw email:\n" + data.Body); 

      // Extract xls and copy to bucket 

      context.succeed(); 
     } 
    }); 

Вложения в теле письма:

------=_Part_3703880_1038025051.1459895117742 
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename=Book1.xlsx 
Content-ID: <[email protected]> 

UEsDBBQABgAIAAAAIQDIo800dgEAAAQFAAATAN0BW0NvbnRlbnRfVHlwZXNdLnhtbCCi2QEooAAC 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 

ответ

-1

вложение также в исходных данных так что вам нужен способ «передача» или декодирование, что в фактическое содержание файлов, которые можно обработать.

Для получения более подробной информации посмотрите на электронную библиотеку python «email».

Смежные вопросы