There is plenty of previous discussion on # - hash/pound. I can't recall a name for @, though, other than "at".

I suppose its presence on the keyboard and its relative lack of use made it perfect for e-mail. Otherwise we'd all be xyz~adjklj.fjioh (~ is tilde, I think).

Gurunet reports the following:

Katie Hafner and Matthew Lyon describe how the @ sign got there:
Tomlinson....became better known for a brilliant (he called it obvious) decision he made while writing [the e-mail] programs. He needed a way to separate, in the e-mail address, the name of the user from the machine the user was on. How should that be denoted? He wanted a character that would not, under any circumstances, be found in the user's name. He looked down at the keyboard he was using, a Model 33 Teletype, which almost everyone else on the Net used, too. In addition to the letters and numerals there were about a dozen punctuation marks. "I got there first, so I got to choose any punctuation I wanted," Tomlinson said. "I chose the @ sign." The character also had the advantage of meaning "at" the designated institution. He had no idea he was creating an icon for the wired world.