Hi @soy
So, a few things.
First, you state that Power Automate is not picking up any data. To have your flow work, you'll need to set up an "When a new email is received.." trigger, and set the "Subject" to whatever this subject would be, so it doesn't run on every email. Looks like it's maybe "Offer of Classroom Training"?
Next, your email body.
So this won't be exact, because the way the email arrives and displays may be different than what you've posted here. But, this should give you an idea of how I'd go about it:

The first Compose is just me pasting in your email so I can access it.
Next, I'm creating a variable and just hitting "enter" in the value - that's so I can say "split everywhere you see an enter.
Then, I'm doing just that - splitting the email based on the enter.
The thing is: if your email is truly the same format every time, you can actually number the line in the array that you'll get your information. Let me show you what I mean.
Here's a part of what it looks like when it's split:

Ugly, right?
Ugly, but functional, because we can now count the lines and access whatever line is needed. Keep in mind that arrays start at 0. (0, 1, 2, 3..)
So let's say we want the Class Name. I count the lines. That's line #49 (and when I say "line", I mean every set of ""s). So I can get it using this formula, in a Compose:
outputs('Compose')[49]
And out it comes - I can place it in a variable instead, if I want:.

You'd repeat this action for everything you want to extract.
Some notes:
1) You need to make sure the email truly is the same every time.
2) You need to trigger it based on the email itself, so you're using the right information to build from. Send yourself the email, to trigger / test it.
3) You can remove blanks / spaces from it first, you can Filter Array for anything that's not null/a space, if you want. You don't really need to, but it'd make it easier to count the lines.