Ok, Sessions aren't too hard. Basically, session variables are super variables that are retained throughout your web server session, from page to page. Here are the basics:
To use sessions, you need to do a session_start() at the top of your php page. To set a session variable "foo" equal to "bar" you could do the following:
session_start();
$_SESSION['foo'] = "bar";
At this point, session variable foo is available to you as long as you are at the site. In fact, I have seen cases where people can go to another site and come back to the original site and still have session variables still set, as long as they didn't close their browser. So, to reduce your security risks, you should always clear session data when you are done like this:
session_unset();
session_destroy();
session_unset clears all session variables, then session_destroy destroys the session. If you destroy the session without clearing the variables first, there is a possibility that someone could read them at a later date, as sessions are sometimes stored as cookies on a person's browser. Better safe than sorry.
How do we access session variable foo? By simply calling it through the $SESSION method.
echo "My name is " . $_SESSION['foo'] . "<br />";
So session variables are pretty easy to master. Using session variables in your case seems pretty much the way to go to keep data from page to page.
As far as formatting goes, you simply create a variable containing the entire mail message, formatted the way you want. Here's a short example:
$message="Application for " . $_SESSION['firstname'] . " " . $_SESSION['lastname'] . "\r\n
First Name: " . $_SESSION['firstname'] . "\r\n
Middle Initial: " . $_SESSION['middle_init'] . "\r\n
Last Name: " . $_SESSION['lastname'];
You will note that I am using the session variables outside the quote marks. I've personally had problems using them inside of quote marks for some reason, so I close the quote, then use a period (.) as a concatenation symbol, then the session variable, then a dot, then open another set of quotes, etc. \r\n are shorthand for carriage return and linefeed - you may not need them. When you complete the message, you finish it with a semicolon.
After that, you simply use whatever email function you are using and attach the message into the email.
That's pretty much it. Give it a shot and see if this works for you.