我正在尝试访问通过SES接收并转储到S3中的电子邮件的内容。

我想使用python 3.6 lambda函数来解析电子邮件并执行操作。我试过了

emailRawString = response.get()['Body']。read()

但是遭到以下错误的攻击:

得到至少1个参数,得到0

我可以看到转储的MIME文件的s3存储桶中的内容类型为:application / octet-stream

任何帮助将不胜感激。我只想打开并获取MIME内容,以便我可以解析并基于该内容进行操作。

注意:脚本的其余部分都可以。

编辑:
我正在使用的实际代码:

response = s3.get_object(Bucket=bucket, Key=key)

        emailRawString = response.get()['Body'].read()
        parser = Parser()
        emailString = parser.parsestr(emailRawString)
        toAddress = emailString.get('To').split(",")
        if emailString.is_multipart():
            for part in emailString.walk():
                if part.get_content_type() == 'text/plain':
                    body = part.get_payload()
        else:
            body = emailString.get_payload()

最佳答案

不需要get()

看着boto3 S3 example。这应该工作:

response = s3.get_object(Bucket=bucket, Key=key)

emailRawString = response['Body'].read()
parser = Parser()
emailString = parser.parsestr(emailRawString)
toAddress = emailString.get('To').split(",")
if emailString.is_multipart():
    for part in emailString.walk():
        if part.get_content_type() == 'text/plain':
            body = part.get_payload()
else:
    body = emailString.get_payload()

关于amazon-s3 - 如何访问S3中转储的AWS SES电子邮件的内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45901792/

10-16 11:19