You can do it with SOQL, not so easy with reports. Reports aren't great when you want to go into 2 different "branches" (from Account to Contacts + from Account to Opportunities).
Joined report might be OK but will show you a lot of "false positives" (only the opportunity-related side will respect your filter by Stage). This might change in later releases, after all in the beginning joined reports didn't support charts or exporting to excel...
Can you consider fixing your data so for example once Opp is in Trial state all contacts from Account are linked to it via OpportunityContactRole? This will probably require some triggers in order to maintain...
If that's also not a valid solution - you might be able to pull it off with some kind of analytic snapshots?
SOQL could be as easy as
SELECT FirstName, LastName, Email, Account.Name
FROM Contact
WHERE AccountId IN (SELECT AccountId FROM Opportunity WHERE StageName = 'Trial')