My school system put every 6th grader through a few very brief typing lessons until they showed demonstrated some very basic skills. It's only grown more important to be able to type since then, so it's not that surprising there are classes for it.
As for the e-mail though, I'd suggest a gmail account. The filters are likely as good as any, and with the kid being in 7th grade (and not 5 years old, he really needs to learn to be prudent when online.
Help him pick out an address designed to be less likely to receive spam (as discussed here
), and teach him not to broadcast his address to every corner of the internet. That includes not registering for an account on every website he might come across, and probably keeping it 'private' on any sites he might have an account on.
The most important part though is that no email solution will get rid of 100% of the spam that he'll get. You'll need to teach him the appropriate response. Spam represents the 'bad neighborhoods' of the internet, be it porn (or "male enhancement"!) or phishing attacks or virus-ridden something else. The lessons you teach him will have a significantly greater affect on what ends up in his inbox than whether you use gmail, yahoo mail (don't), or a supposedly kid-safe alternative.