如何访问S3中转储的AWS SES电子邮件的内容?

时间:2017-08-27 04:49:28

标签: amazon-s3 aws-lambda

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

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

  

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

但遭遇以下错误:

  

预计至少有1个参数,得到0

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

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

注意:脚本的其余部分没问题。

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

'always'

1 个答案:

答案 0 :(得分:1)

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()