I want to create a field on the Opportunity object that automatically populates with the primary contact's email. Is this possible with a formula?
Oh great, then the fact it's only a text field shouldn't matter.
When you create a new field, select formula, with return type 'text' and click 'Next'.
Make sure you're on the 'Advanced Formula' tab and click the 'Insert Field' button:
In the pop up box you will see all the fields on the Opportunity record including the 'lookup fields', which will have an arrow next to them.
Scroll until you find the 'Primary Contact >' option and click it. You are then looking at all the fields on the Contact record linked via the 'Primary Contact' field on your Oppty.
Find and select the email field. Hit Save.
That should then find and return the email address from the Contact record linked to each Oppty via the 'Primary Contact' field.
Hope that helps!