2017-08-27 84 views
2

我试图访问通过SES收到的电子邮件的内容,并在S3中转储。如何访问在S3中转储的AWS SES电子邮件的内容?

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

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

但与下面的错误被击中:

get expected at least 1 arguments, got 0

我可以看到在倾倒MIME文件的S3存储的内容类型:应用程序/八位字节流

任何帮助将不胜感激。我只想打开并获取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() 
+0

你使用什么版本的Python?如果您还发布了显示“obj”的代码,您可能会获得更多帮助。 –

+0

这是3.6,它也已经在问题中提到过。 – harinikp

+0

我也添加了代码! – harinikp

回答

0

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() 
相关问题