Last Opened Date

Last Opened Date

Hi, within campaigns, I am looking at being able to capture the "last opened time" within the CRM based on emails that are sent which will allow me to pull off a report based on that field - e.g contacts that havent opened an email in the last 3 months - what would be the best way of doing this please or a good workaround?
Thanks

A