Because e contains the key of the object. To get the value, use email_arr[e].
Really, it's not wise to use for...in to iterate Arrays because it iterates, not just the items in the collection, but all the members of the Array including custom properties and methods. So, as soon as someone extends Array, you will get unexpected results in your for...in loop. For example, if you are using IE7 and you want to use Array.forEach() you'll have to extend Array as recommended by MDC. With Array extended, now each Array you create will have an extra property that will show up as you iterate using for...in.
Instead, use Array.forEach(). It's solves all kinds of problems that can crop up when looping through Arrays. This does what you are trying to do:
email_arr.forEach(function(email, index, list)
{
alert(email);
});
alert(temp)ing, and see what you get :)