There are a few reasons for this, none of which are related to the viewer.
If in the viewer, go to the Avatar menu and choose Account. If not in the viewer, click on this link. Then click the Contact Information link and edit your email address. Enter your password and click Save Changes.
If in the viewer, go to the Avatar menu and choose Account. If you are not in the viewer, click on this link. You should now be in your account on the Second Life web site. Then check the box for “I would like to receive offline IMs via Email” and click Save Changes.
Second Life now requires an email verification step in order to send any emails to you, including offline messages. See the official instructions for how to do this here: https://community.secondlife.com/blogs/entry/2155-making-email-from-second-life-more-reliable/.
If your email address is correct, and the option to send IMs to email is enabled, and you have verified your email address, then the problem could be spam filters or server issues. Usually server issues don't occur, but server configuration could play a part.
First check your email's spam folder to see if the email is being incorrectly flagged.
If not there, then try using a different email address at a different provider (Yahoo, Google, etc.).
If IMs are delivered to the new address, contact your regular email provider and ask them if mail coming from “im.agni.lindenlab.com” is being blocked.
If IMs are still not delivered to the new email address, ask your friends if they have the same problem, check the Grid Status page and see if there is any reported issue, and then if nothing is there contact Second Life Support and report the issue. Make sure you tell them everything you've done, in detail.
Hotmail users, try the suggestion on this page.
July 5, 2014: Offline email to one set of providers not being delivered.