I have a contribution page that has pcp enabled. I want to send out a mass email to all the pcp owners. I can display a list of all the pages with owners, but I can't do any actions on them. Is there an easy (or even a hard) way to do this?
This is definitely a blind spot in CiviCRM! I don't think there's anything except a very hard way: Write SQL to get the contact IDs, then import those IDs, assigning them to a new group.
To get the IDs of EVERYONE with a PCP, here's the SQL:
SELECT contact_id from civicrm_pcp;
If you want to get the PCPs associated with a particular contribution page, and that contribution page's ID is 12, here's the SQL:
SELECT contact_id from civicrm_pcp cp JOIN civicrm_pcp_block cpb on cp.pcp_block_id = cpb.id WHERE cpb.entity_id = 12 AND cpb.entity_table = 'contribute';
If it's an event page, change
Export that as CSV (this is trivial in PHPMyAdmin, for command line you can look up syntax). Import the list of ONLY contact IDs to CiviCRM through Contacts menu » Import Contacts. On screen 4 of 4 of the import, you can specify a (new or existing) group to add your contacts to. Once it's imported, you can mass mail the contacts.
Sorry it's such a hassle! Hopefully an organization invested in PCPs will step up and fund a better solution. If nothing else, a custom search would be easy to write.