def lambda_handler()

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