in src/main/python/EmailProcessorLambda.py [0:0]
def lambda_handler(event, context):
transcribe_client = boto3.client('transcribe')
workmail = boto3.client('workmailmessageflow')
msg_id = event['messageId']
raw_msg = workmail.get_raw_message_content(messageId=msg_id)
mail = email.message_from_bytes(raw_msg['messageContent'].read())
fromAdd = mail['from']
#print('fromAdd : '+fromAdd)
for part in mail.walk():
if part.get_content_maintype() == 'multipart':
#print part.as_string()
continue
if part.get('Content-Disposition') is None:
#print part.as_string()
continue
fileName = part.get_filename()
if bool(fileName):
filePath = os.path.join(".", 'attachments', fileName)
if not os.path.isfile(filePath) :
print("file : " + fileName)
extension = fileName[fileName.rindex("."):]
print("extension : " + extension)
if (extension.lower() == '.wav' or extension.lower() == '.m4a' or extension.lower() == '.mp3' or extension.lower() == '.mp4'):
newKey = "audio/"+msg_id+""+extension
s3 = boto3.client('s3')
s3.create_bucket(Bucket=S3BucketName)
s3.put_object(Body=part.get_payload(decode=True), Bucket=S3BucketName, Key=newKey)
put_item(fileName, fromAdd, newKey)