in Connect-Email-Task/lambda_function.py [0:0]
def lambda_handler(event, context):
response = {
'statusCode': 200,
'body': json.dumps('Nothing relevant here')
}
for record in event['Records']:
message = json.loads(record['Sns']['Message'])
if('commonHeaders' in message['mail']):
timestamp = str(message['mail']['timestamp'])
source = str(message['mail']['source'])
subject = str(message['mail']['commonHeaders']['subject'])
print("Timestamp: " + timestamp)
print("subject: " + subject)
base64_message = message['content']
base64_bytes = base64_message.encode('ascii')
message_bytes = base64.b64decode(base64_bytes)
email_message = {
part.get_content_type(): part.get_payload()
for part in email.message_from_bytes(message_bytes).walk()
}
str_base64_content = email_message["text/plain"]
base64_content = str_base64_content.encode('ascii')
try:
message_bytes = base64.b64decode(base64_content)
message = message_bytes.decode('UTF-8')
except Exception as e:
message = str(email_message["text/plain"])
print("Received message: " + message)
start_task(source,subject,message)
response['body']=json.dumps('Message processed')
return response