2017-08-27 35 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() 
相關問題