AWS Lambda:如何从原始电子邮件中提取附件(xls)?

时间:2016-04-05 23:30:26

标签: email amazon-web-services amazon-s3 aws-lambda

我在S3存储桶中有原始电子邮件。我正在编写AWS Lambda函数来提取.xls附件并将其保存到另一个S3存储桶。到目前为止,我有Lambda阅读电子邮件的原始内容,但如何提取附件?

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: <223412a-63b2-9471-19a8-f94640ef04a5@yahoo.com>

UEsDBBQABgAIAAAAIQDIo800dgEAAAQFAAATAN0BW0NvbnRlbnRfVHlwZXNdLnhtbCCi2QEooAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

1 个答案:

答案 0 :(得分:-1)

附件也是原始数据,因此您需要一种方法来“转移”或将其解码为您可以处理的实际文件内容。

有关详细信息,请查看python核心库“email”。