【问题标题】:Use a Node Lambda function to parse an email stored in an AWS S3 Bucket by SES使用 Node Lambda 函数解析由 SES 存储在 AWS S3 存储桶中的电子邮件
【发布时间】:2018-05-17 23:01:06
【问题描述】:

这是获取存储在 S3 中的电子邮件的 Node Lambda 函数部分。如何从返回的数据对象中获取“文本/纯文本”内容?

我是否需要在 lambda 函数中包含 NPM 电子邮件解析依赖项(以 .zip 格式上传),还是应该在 lambda 中使用一些正则表达式来获取我想要的部分?如果是这样,那会是什么样子?

exports.handler = function(event, context, callback) {

    var sesNotification = event.Records[0].ses;

    // Retrieve the email from your bucket
    s3.getObject({
        Bucket: bucketName,
        Key: "ses/"+sesNotification.mail.messageId
    }, function(err, data) {
        if (err) {
            console.log(err, err.stack);
            callback(err);
        } else {

            data

        }
    });

};

【问题讨论】:

  • 如果您将 Lambda 包部署为 ZIP 文件并上传,您需要包含自定义 JavaScript 代码和代码运行所需的任何依赖项。 ZIP 文件的根目录应该包含您编写的 javaScript 代码,以及一个名为 node_modules 的目录。在 node_modules 目录中,您的代码需要所有依赖项。
  • 谢谢你,帮我搞定了。

标签: node.js amazon-web-services amazon-s3 aws-lambda email-parsing


【解决方案1】:

使用mailparser包解析会更安全。

const simpleParser = require('mailparser').simpleParser;

simpleParser(data, (err, mail)=>{
        console.log(mail.text);
})

【讨论】:

    猜你喜欢
    • 2016-12-26
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2021-05-16
    • 2019-03-24
    • 2015-03-21
    相关资源
    最近更新 更多