Make a physical board and visualize ALL the work, also extra work or private projects. Then if you want to know who is working on what attach an avatar to the card in progress. Now the team lead can walk to the board and check who is working on what. If you are distributed use something like Jira or Trello which also supports avatars.
Then with a board you can do a daily scrum to understand what developers worked on yesterday and which iteration goals they are going to achieve today. Also read the 7 Mistakes during the daily scrum.
Agile teams do not have a team lead, maybe a servant leader. Agile promotes self organizing teams. This means the team is leading, not a person. Sending updates by e-mail sounds very command-and-control like, try to break this habbit as soon as possible if you are dreaming of becoming truely Agile. The Coaching Agile Teams book has some great chapters about tradidional command-and-control PMs becoming Agile leaders.
If for some reason you want to be anti-Agile and want to control everything, this is of course also possible. Combine something like Jira, let developers log their work in the system. Monitor with plugins like Tempo. I can tell you this is counter productive though, since Absence of Trust is the major dysfunction for teams.