Hi all,
I have created a Flow to parse a shared 'noreply' mailbox, looking for certain failed email deliveries and logging them.
I've used the 'When new email arrives in shared mailbox' as my trigger, then Get Email from there. Each email body and subject are parsed in parallel (after converting to text) to produce fields including personal data from the subject and the reason for the email delivery failure in the body. This is all pushed into Excel and SQL for reporting later.
To parse each piece of info, I have created separate variables, using first/last expressions to grab the text in between, as the layout is almost always the same.
I was wondering if there is a better way to create my variables using an array to initialise the full email body, then parse that for each item? I'm still a newbie, so there has been a bit of hacking going on... 😬
Here's the full Flow:
This is a slightly zoomed section:
This is the source email - I'm extracting the following fields from the subject:
Buy or Sell (SELL in this case)
Account number (123456)
Name (ABC SUPERANNUATION PTY LTD)
Contract (7654321)
And from the body:
Email (sample@abc.com.au)
Reason (554 5.4.7 [internal] exceeded max time without delivery)
These are the expressions used in the second screenshot above:
last(split(body('Convert_email_body_to_text'),'addresses: '))
first(split(variables('EmailRecipientPre'),'Reason: '))
It all seems pretty cumbersome as I have at least one, usually two variables created for each of the fields above. I'm hoping someone smarter than me can help suggest an array to achieve this?
Thank you!