Database structure for object with dynamic attributes
It looks like you want to fill out the email templates using only the unique data for each recipient.  If this is true then I would recommend option 3.  I would have a recipient table that is not directly linked to the email, but is instead linked to the email via a join table.  I would also put a FK on the recipient table to the email sender.  Then I would basically follow your EAV model.

This way your "recipient" table is more like a contact table for the sender.  The EAV model allows you to easily select the custom data for the templates, gives you the ability to painlessly extend the data points, and gives you the opportunity to allow your users to create their own templates using the fields they want.  The senders also win because they can reuse the 50+ data points for future emails because we decoupled the recipient table from the email.