A great solution is using a page locking app, such as Locksmith. What this does is allow you to have hidden/locked page(s) on your store. They will only be available based on the conditions that you set up within the app. For example, you can set up a page in Locksmith to only be available to customers with a certain customer tag. In your case, you could have it so only customers that have the tag 'subscriber' associated with their account can view the site. Depending on your email marketing app, you should also be able to automatically apply that customer tag to their account when they subscribe to your site.
I hope this helps! If there is anything else I can help you with, please let me know.