I see by the timestamps on each of the comments that I’m coming to this thread a little late. I’ve just finished implementing authentication for both Google+ and Facebook, and yes, just like the comments mention, both of those platforms provide email if you ask for permission for the email via scopes. This is why I’m a little surprised that you can’t collect it via the Twitter API. So given the fact this is what I have to work with (and yes, I know it sucks), this is how I’m going to address this…
When the user logs in to Twitter through my app for the very first time, I’m going to collect their email address via a form (yes, ideally we would never have to do this, and yes, this is different than the other platforms I’ve already implemented) and then store it in a database with their Twitter User ID. When they authenticate correctly moving forward, I will check my database to see if I already have the associated Twitter User ID. If I have the associated Twitter User ID, then I will also have their email (by design). And in the future, I can communicate to them as necessary via email.
I figure the above implementation I’m performing is similar to how most will overcome this issue, but it seemed with this topic and other related topics that I couldn’t find anyone mentioning their workaround.