I'm fairly new to flow and wanted to extract an email address out of a planner tasks body. They body always looks the same. The very first row always looks like his:
Contact: something@whatever.com (can vary in length)
text text text
I would like to send out an email if the task is closed to the mail address in the first row. How could I achieve this?
This is what I've tried so far and it's not working at all:
Thank you so much, you helped a ton!
Hi @Anonymous ,
Have you figured out a solution for this issue?
Please take a try with the following code to see if it will work for you:
substring(body('Get_task_details')?['description'],add(indexOf(body('Get_task_details')?['description'],'contact'),8),sub(lastIndexOf(body('Get_task_details')?['description'],'.com'),4))
I have made a test and it is working fine.
Best regards,
Mabel
@efialttes wrote:@Anonymous
If all email addresses ends with .com, you can use the following
lastIndexOf(body('get_task_details')?['description'],'.com')
Hope this helps
Thank your for the response!
This came back though because it tried to send the message to "22" instead of the mail address, I'm assuming because he's counting the characters before ".com"?
{ "status": 400, "message": "One or more recipients are invalid.\r\nclientRequestId: 5a8df2c4-07b3-4acc-b634-00a0cd9906c3\r\nserviceRequestId: 67781085-ed45-44af-9e8d-ac2b29f1fc40", "source": "office365-we.azconn-we.p.azurewebsites.net" }
Edit: Oh sorry, I get it now > will try tomorrow and report back
Hi again
As an alternative approach, you can use replace() and indexof() instead
Step #1: replace 'Contact: ' (including the space separator) by '' (empty)
Step #2: use indexof() to find the first space (' ')
Step#3: use substring to extract the email address, starting from 0, taking the result from indexof() as the target length.
Hope this helps
@Anonymous
If all email addresses ends with .com, you can use the following
lastIndexOf(body('get_task_details')?['description'],'.com')
Hope this helps