Sounds like you just need a more advanced contact form.
Just make profiles.php's $message an array -
as discussed here. Although machinari claims it's untested, I can testify it works
perfectly for me.
I've even went a step further and make sure to fill up the fields in case your submission has an error, which is great if you have many fields, so then you can just fill the ones that have error in them and not the correct ones all over again!
I'd write a detailed patch, but I'm not sure what's the best way to implement required fields now that there are multiple fields and not just $message (because it's an array).