cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
dbugden
Frequent Visitor

Parsing email from shared mailbox to SQL - can I use an array?

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:

Full flow diagram

This is a slightly zoomed section:

Flow - zoomed in

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)

 

Source email

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!

 

1 ACCEPTED SOLUTION

Accepted Solutions
v-bacao-msft
Community Support
Community Support

Hi @dbugden ,

 

Please refer to following expression:

trim(first(split(last(split(body('Html_to_text'),'the following addresses:')),'Reason')))
trim(first(split(last(split(body('Html_to_text'),'Reason:')),'The message subject was:')))

Image reference:

1.PNG

2.PNG

Hope it helps.

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

3 REPLIES 3
v-bacao-msft
Community Support
Community Support

Hi @dbugden ,

 

You need to use two strings separately to get the middle specified part.

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
v-bacao-msft
Community Support
Community Support

Hi @dbugden ,

 

Please refer to following expression:

trim(first(split(last(split(body('Html_to_text'),'the following addresses:')),'Reason')))
trim(first(split(last(split(body('Html_to_text'),'Reason:')),'The message subject was:')))

Image reference:

1.PNG

2.PNG

Hope it helps.

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

Thanks very much @v-bacao-msft , that simplifies my Flow a lot...

 

Appreciate your help!

Helpful resources

Announcements
Process Advisor

Introducing Process Advisor

Check out the new Process Advisor community forum board!

MPA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

V3_PVA CAmpaign Carousel.png

Community Challenge - Giveaways!

Participate in the Power Virtual Agents Community Challenge

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Top Solution Authors
Top Kudoed Authors
Users online (3,193)