I'm currently working on a project where I receive files via email and need to retrieve and upload them to an S3 Bucket. To streamline this process, I decided to utilize WorkMail. I've set up an organization and I'm using a domain provided by AWS since I'm still in the development phase of the project. Testing the functionality, I've successfully sent and received emails without any issues.
However, when attempting to automate the process using Lambda to process the emails, I encountered an error. Specifically, when trying to retrieve the emails using the boto3 client 'workmailmessageflow', I received an error indicating that it couldn't find the email in the inbox. I think its because the notification sent by Workmail could be wrong since in every documentation I've found is in the form
{
"summaryVersion": "2018-10-10",
"envelope": {
"mailFrom" : {
"address" : "from@example.com"
},
"recipients" : [
{ "address" : "recipient1@example.com" },
{ "address" : "recipient2@example.com" }
]
},
"sender" : {
"address" : "sender@example.com"
},
"subject" : "Hello From Amazon WorkMail!",
"messageId": "00000000-0000-0000-0000-000000000000",
"invocationId": "00000000000000000000000000000000",
"flowDirection": "INBOUND",
"truncated": false
}
but what I'm actually receiving is much more larger
{"notificationType":"Received","mail":{"timestamp":"2024-05-14T15:34:27.757Z","source":"XXXXXX@XXXXX.cl","messageId":"42vg46a0mlog5pkd0n2gul5iogipcrgol91d1rg1","destination":["XXXXX@XXXXX-aa.awsapps.com"],"headersTruncated":false,"headers":[{"name":"Return-Path","value":"<XXXXX@XXXXX.cl>"},{"name":"Received","value":"from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2052.outbound.protection.outlook.com [40.107.93.52]) by inbound-smtp.us-east-1.amazonaws.com with SMTP id 42vg46a0mlog5pkd0n2gul5iogipcrgol91d1rg1 for inavarrete@ccembonor-aa.awsapps.com; Tue, 14 May 2024 15:34:27 +0000 (UTC)"},{"name":"X-SES-Spam-Verdict","value":"PASS"},{"name":"X-SES-Virus-Verdict","value":"PASS"},{"name":"Received-SPF","value":"pass (spfCheck: domain of embonor.cl designates 40.107.93.52 as permitted sender) client-ip=40.107.93.52; envelope-from=inavarrete@embonor.cl; helo=NAM10-DM6-obe.outbound.protection.outlook.com;"},{"name":"Authentication-Results","value":"amazonses.com; spf=pass (spfCheck: domain of embonor.cl designates 40.107.93.52 as permitted sender) client-ip=40.107.93.52; envelope-from=XXXXX@XXXXX.cl; helo=NAM10-DM6-obe.outbound.protection.outlook.com; dkim=pass header.i=@embonorsa.onmicrosoft.com; dmarc=none header.from=XXXXX.cl;"},{"name":"X-SES-RECEIPT","value":"AEFBQUFBQUFBQUFHdHRIaGQ5ZE1OQUpiNVF4TzljRS9MVEdObmErUE1xejNnd2dnVWtKR2hBWEVFZUNHaUY2VnBrVVJlVzM3VnlMNTRkenpkWUlPM3k2SE1Rek9hclV1UHlzMGd1d3haMHQwSTBTeTMyd1pZMFRwKytDNFMzK1o2RSsxUEhxeXpObTNkZFRvblQ5N1EzL204SytBQ1V2d0NNMzlUYmVhbGRHd00wL0w0S0tJZ3dnejdFQ2hYUzVlcElQeE1PbzdQZnVIWGM1MXJPc1BIMGgzR29sckZRdEN6d21LWmhBSUxDZEpCRHNObUtaMTZyZ3NpK0g5SWJBbms5b2NTQVkvZzhyNmd3d2U0THNiSU5BbkpUUWNOMTVDTkZleW8zZ1hud2FqeTRYU3pFYWpjSFE9PQ=="},{"name":"X-SES-DKIM-SIGNATURE","value":"a=rsa-sha256; q=dns/txt; b=JBFA2oW3r012Jzm+sN1uYTbJIs2QZEzpJq/VZtQuOezL/CdItCE1kJfmuFn5CcBI/wXanqPZbUYhWiTZTHsz8a4hw6EI8pt1xQWmIVk/97gz46Vgfo8lxVDdLljD1gMTYSBgKMQH1OTptvNpntVT/USmpFB06xq/vcRDrE3JnIQ=; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1715700873; v=1; bh=sZ6st0za0xQ7HI6ZMWu46Dx1qcDEr3OMmHwV2jovDIw=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT;"},{"name":"ARC-Seal","value":"i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F0GlIik5SSzbe2WMhlKG3/Bmx3lf5yDzFOJ8bz0QFx3L4YvW2wDoz1f0qYBxwwcu7QX+pyNKsHOTKTYp0pLkwsjIcv6CzLO2N2grRprWHDS+Gg0pX/L84FG9d7p3goUoDeYBL2egkClRwt/6pufGJJmwxlXFcAvm/3UFjOi8EeEYD/UeRambhmQoyM1oqJLYkO3M4TP4jztM816SzBLMjlrSyhRecOonf0R04ckFvEN2AV9/yApiR1TS2+281HuNymOghcG2Kq3zjJIv2dmpXYbZ7TtK3zL0G2o9oVvNClVW8Mwukvf1pcvv1MwpuOUlO1v+ReKFyICWof10aSqOSQ=="},{"name":"ARC-Message-Signature","value":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=X99tMpuEqsQ6GAYc/6lMx+ZFUbvHgloPCIhPnS6/jL8=; b=MSjYufaR7Fo2Nxzqj8JCJ46lTyJB0eZEUOJXYB1FjwE+l7ERq1RUBTaKAQR5cw9vpuYm3WcwGqFQtXXeZAflH3l38UjJf/ZOj0g8oiZwDPu3vF9b32RbY2Cp7b3WGAt/j4r8E0CkSRlEVzxNpXhebV59j9Nxvyz1pm8+oi/p1vagrG5Ll08ATCz3Fnx1VNZCa93TaQDfcSntduLiRyUxwomSVSqy8UbXB5zK1SkhRYCWNQVZmMKpLmkdNw5a0iyt8wRirajvdV3aR3zaAlIFpY5Q5y/22kCctAZQYNegkAIzlIkQ7PkAmms7VdaV9kLvfSmg9XJORntSFZcNbVxa6g=="},{"name":"ARC-Authentication-Results","value":"i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=embonor.cl; dmarc=pass action=none header.from=embonor.cl; dkim=pass header.d=embonor.cl; arc=none"},{"name":"DKIM-Signature","value":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=embonorsa.onmicrosoft.com; s=selector1-embonorsa-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X99tMpuEqsQ6GAYc/6lMx+ZFUbvHgloPCIhPnS6/jL8=; b=AodFKG/TWnRsp1wQdCAYyVSPju86x8Kldhlg3rfqNaHPwM8yZtQoLQ/reVzfAP89t5FtdW9kLh4z8BfyquJ2M9L8yqllGR1sJeESKscToe8PEpXqOKkFZUpZ4rY+MIF2w4Nie9gkROAUBfVSRe11iT1iNrl63P6MLK1F81iM+Fc="},{"name":"Received","value":"from SCYP215MB2491.LAMP215.PROD.OUTLOOK.COM (2603:10d6:300:8b::8) by CPUP215MB2161.LAMP215.PROD.OUTLOOK.COM (2603:10d6:103:1b0::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.26; Tue, 14 May 2024 15:34:25 +0000"},{"name":"Received","value":"from SCYP215MB2491.LAMP215.PROD.OUTLOOK.COM ([fe80::ac7e:3812:97db:aede]) by SCYP215MB2491.LAMP215.PROD.OUTLOOK.COM ([fe80::ac7e:3812:97db:aede%6]) with mapi id 15.20.7544.052; Tue, 14 May 2024 15:34:25 +0000"},{"name":"From","value":"Ivan Navarrete Jara <inavarrete@embonor.cl>"},{"name":"To","value":"\"inavarrete@ccembonor-aa.awsapps.com\" <inavarrete@ccembonor-aa.awsapps.com>"},{"name":"Subject","value":"Test 3"},{"name":"Thread-Topic","value":"Test 3"},{"name":"Thread-Index","value":"AQHaphQzc6BlAA1mEU2cs9/r7SjAUA=="},{"name":"Date","value":"Tue, 14 May 2024 15:34:25 +0000"},{"name":"Message-ID","value":"<SCYP215MB2491842EE57E77EF85891E51A8E32@SCYP215MB2491.LAMP215.PROD.OUTLOOK.COM>"},{"name":"Accept-Language","value":"es-ES, en-US"},{"name":"Content-Language","value":"es-ES"},{"name":"X-MS-Has-Attach","value":"yes"},{"name":"X-MS-TNEF-Correlator","value":""},{"name":"msip_labels","value":""},{"name":"authentication-results","value":"dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=embonor.cl;"},{"name":"x-ms-publictraffictype","value":"Email"},{"name":"x-ms-traffictypediagnostic","value":"SCYP215MB2491:EE_|CPUP215MB2161:EE_"},{"name":"x-ms-office365-filtering-correlation-id","value":"459a51a3-e6a3-48db-cbe3-08dc742b55f6"},{"name":"x-ms-exchange-senderadcheck","value":"1"},{"name":"x-ms-exchange-antispam-relay","value":"0"},{"name":"x-microsoft-antispam","value":"BCL:0;ARA:13230031|366007|1800799015|376005|38070700009;"},{"name":"x-microsoft-antispam-message-info","value":"J4f4iVVNCtrKdUz8Q9sF518Nlfr9GICRwyuzU+wIRiW73fO/HGrCi0YnrRhT3oFuRFu351ZHJNUyaiC9KYYjOS+zvV1cWI2jxljdxm9Mk1joA5cHWrnPCrDb/zG6ITNSmUqI6c8XzL91HPYTvsa3U1CBMuaQthB5HWo0IPgbSLXCIov0I4TnVGbpVIiyStmAtwcBN6AoHmgdp9kYe/QM8Asqo1F6Y9Yl7aWkP/GUsK+gYyRIoCKfkE9aNe9behbAXBRZWzAnw1bo8q9dYwjx6shcZvWDDLyNdeDmVazuDsjHRcI3sGoSZnbhWP/1SG7dkP1OtZ4P4SEix5rStyKOu9DUqVru8NBqZWcZeuQV99XMJ54l9zFDhm4VoGCh/DRn4DM3pyGaHy9XnVoUESzBC3J5U2PH7dPSCKInPOQJNkSWiE1E1IXybeYFnX1OhKeEoNMUVc2bY69B0B8kmZtvcaUcb5Cw3gYsMV/9d1GskjR14m0HrKICBDq9d8+ykxcPvMrdR6xDarFa3oV6S4hq0EpeL4Jmv7B2UWNR13kn9KGcblqxFnQG4XeajkonCM6+QY8cQh8f6lnbBAfUMlWxZ183uLUhJrBlYIVrMxsSZ/ter6r0/+vDWGZtSyOLzDFp9MuMjAdUDMLCsjk5RjrngDJvORW7ZLUjunRkMvtPVOLLrL9JOGDyn4CxK8O5Vp9NJSK/ZECkzWOCQ1BwHX6eqaMPvIsdL5mqOqmZt7YQSmBzvfUUzDYLGY75cUgJbKkzm02QGe+1/6YmYpW/xy41QlYjlBLb4KgB4kFIw0BuLGopKD33gidf8WiCD7KO+O6jt1zHVQSiO8gbyqKU+fEYdq2AsVJPpyQpOrRiF2JqHMhUAbX56tDfcsxBn2PXkD1DkkC5ul9zHu3o4K0uEt1wmkpUkVTCDgfpNHixTI1fomL4mGzsZ3FAeQgUBU1YU2aMIYspzq4gfbJF4SEaEswhK0gDN924r1A32auEO0JxhheQWan/16VDWxv+AiYlXxm2yjGh7wntjZOLOqu2EHagqL1uQxmIGQ5RgB4rB2IBGCs8j/Ar3NCogefsj9SI3IZb"},{"name":"x-forefront-antispam-report","value":"CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SCYP215MB2491.LAMP215.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(366007)(1800799015)(376005)(38070700009);DIR:OUT;SFP:1101;"},{"name":"x-ms-exchange-antispam-messagedata-chunkcount","value":"1"},{"name":"x-ms-exchange-antispam-messagedata-0","value":"Jq/LRkvJmrQltKrfXhPsKeq/Nm6oo95ym5Y/aECMD2YItPS1e+zKZfDf3WUn6knc1lwP+5fDKxI3RKmImO+utXqLOcdx6m122vrPYeHQUYvqkV5hRusCuFaxCKfZC4i2occrwycuZejlj4mEFYMfA/CK0QSBKVmpS7vrsJroEcYM+QwvXabgvBubYLYbFbtMSChKxHtnRc8t7HHe25jGsHu3uEqQxwKWhUHS39Srtb5q3sO7rRLIMJpNQdIvAZJbhBzniOQC9Ijh0iUGaFvNJ4R3UuMsjI1rxT76VPX/B+GDDO6xqWGc0VeySD1fQli8PbwuhE4dd3apo/M4PnE00GQX1JOLAlpisbGYh8i/ZNkeqx1XWc5hXvtkRoInk/KIjeRefVaXvc3A6KW7oZ/vbcbd/zrzN+P6MKtg/mP6Ja4JqDabtbJJCcaqxAxHpyz98SpZqcGu9XzsVF/xjqlyEUpjU4xTUs+I2ECaTS6Hx8xfkMtQpYG86uQxmd+rqxhlq1sRPBz6LNf9GQWV58cD9AAYGRe4WOWx3qW1SxEk7UDNxZzen/WavvGThNcNkHWDEPNUXlZ6P8OJOEEH+hIX1lWdZUnu/x9wQG0LJJWX7zlR+VFSE6NdpMYz3nUG0TkPmuJ6sBIDLy5gPihViHcKf92oBf0ZuACcA4+I30A+NvX1z+xBZzVMomb9m9LYftZjEfH4CSdi6of4rAjezWVkdeh6AtSCvHBQZJIEq/kUB1QsVLU9Y0lgN1fSgRBpDx3fBJ1SNUaulDOmopSryt9kAve6gv+N+6f05JrmfeHGfOQ6AfROl6+ncjJYFFmzJLc9iuRC+5FTq2UIdOOWjgnRsOafCS2qiFj6xtTHgov8y+7815OxerIJyNX6kWrQUcdUQud6XLb3XEoeCw11+gy8lQarZGzpQPnAuJ7NubNq68o9VwHD+3KjG65BkXmf1FAFr9LYwRw/LFSYvPPV5sWUo+UKLH5EwhRahIr3jwJzr4YihgPYKsAisktUq+hLSNClX92mbO7OVKmktWtZPOX+NdoSuanOXmvwvfHtig6AsB4ZZOkAN8TbyGCyZtoGxv3iIs32XRXKkOpUEbPYmxaWPIkIKStbzNfOguILbyKrdnRKgbTAIb0I0uOIi7Fms0SzvAK5SbcbocOwN7IkLrHJkeCyWu7ky9gim3PXIHhHH5KelAYx+EDAbH3AVeHuS8S8GThr4v1UJ17sxPHf0onYLKWmSXF05bV1ia/mBqoCCcli2mKjKU5qWzyyfdandsyMCmR+elzMNvMyaAb5yTFDUmM6FV9rZGRe032faTzzLAX6/rQEJKqd7JznFn+CAKpAqt45mkPC0NQcLVNt2JvhB+lwoiqEZmzznEUAbdkuGG1YOTyhf4qC2gRTqZPQGucodqJXbJu2W7pC+FIGIm6aQ3jDrPGjbeeDQBZm1L3lZEvKQ9KWEme0kDZPNteMQ9iDHOr1tC+Ec5uqi5trquR1/qT8RZDEQlTug42Tsguk1zUbCb1FmhVf73rQ/G7IoTberx+F+4RjIcUWTpBODju7BGskduSL4V+u3MFgc5qCmxFq3u0WiY8a2yrhjg6j+6us"},{"name":"Content-Type","value":"multipart/related; boundary=\"_004_SCYP215MB2491842EE57E77EF85891E51A8E32SCYP215MB2491LAMP_\"; type=\"multipart/alternative\""},{"name":"MIME-Version","value":"1.0"},{"name":"X-OriginatorOrg","value":"XXXXX.cl"},{"name":"X-MS-Exchange-CrossTenant-AuthAs","value":"Internal"},{"name":"X-MS-Exchange-CrossTenant-AuthSource","value":"SCYP215MB2491.LAMP215.PROD.OUTLOOK.COM"},{"name":"X-MS-Exchange-CrossTenant-Network-Message-Id","value":"459a51a3-e6a3-48db-cbe3-08dc742b55f6"},{"name":"X-MS-Exchange-CrossTenant-originalarrivaltime","value":"14 May 2024 15:34:25.3982 (UTC)"},{"name":"X-MS-Exchange-CrossTenant-fromentityheader","value":"Hosted"},{"name":"X-MS-Exchange-CrossTenant-id","value":"09dad77a-dcb8-467e-b4d5-9c00c2adde5d"},{"name":"X-MS-Exchange-CrossTenant-mailboxtype","value":"HOSTED"},{"name":"X-MS-Exchange-CrossTenant-userprincipalname","value":"MabZwTRoPpEC9BDzy3eOm0ybamF8ycNTBqlbwqqoNYj7/hB4NfToL+AcraozE7NmDLT3G9oUEbMvU84vRTu48yElHMWbSLZzoM/yunaLoZY="},{"name":"X-MS-Exchange-Transport-CrossTenantHeadersStamped","value":"CPUP215MB2161"}],"commonHeaders":{"returnPath":"XXXXX@embonor.cl","from":["Ivan Navarrete Jara <XXXXX@XXXXX.cl>"],"date":"Tue, 14 May 2024 15:34:25 +0000","to":["\"inavarrete@ccembonor-aa.awsapps.com\" <XXXXX@ccembonor-aa.awsapps.com>"],"messageId":"<SCYP215MB2491842EE57E77EF85891E51A8E32@SCYP215MB2491.LAMP215.PROD.OUTLOOK.COM>","subject":"Test 3"}},"receipt":{"timestamp":"2024-05-14T15:34:27.757Z","processingTimeMillis":6359,"recipients":["XXXXX@ccembonor-aa.awsapps.com"],"spamVerdict":{"status":"PASS"},"virusVerdict":{"status":"PASS"},"spfVerdict":{"status":"PASS"},"dkimVerdict":{"status":"GRAY"},"dmarcVerdict":{"status":"GRAY"},"action":{"type":"WorkMail","topicArn":"arn:aws:sns:us-east-1:XXXXX:aa-textract-new-mail","organizationArn":"arn:aws:workmail:us-east-1:XXXXX:organization/m-XXXXX","instanceArn":"XXXXX:XXXXX:XXXXX:us-east-1:XXXXX:organization/m-4cddf5ffc55649219c707d8567ee80be"}}}
Has anyone else faced a similar issue with automating email processing through AWS WorkMail using Lambda? Any insights or suggestions on how to troubleshoot and resolve this problem would be greatly appreciated. Thank you!
Hi,
You need to get the message Id via: event['messageId'] not event['mail']['messageId'].
Robin