The problem is that you are sending the emails inside the loop. So each time you process a link it sends a new email. To only send one email per user you need to gather up all the links for each user inside the loop and then send the emails after you exit the loop. Here's the pattern you will need to follow.
1) Sort the Get Items by user email
2) Initialize a variable of type array called varLinks to hold the links
3) Initialize a variable of type string called varEmail to hold the current user email. Set it to "First"
4) Now start your loop on Get Items. Inside the Loop do the following
a) Check to see if varEmail is equal to the current user or "First"
b) If it is then set varEmail to the email of the current item and append the link to varLinks array
c) If it isn't then convert varLinks to an HTML table and send an email with the Table to varEmail.
-After sending the email set varEmail to the current item email and set the varLinks array to the current Link
d) After the Loop exits convert varLinks to an HTML table and send an email with the Table to varEmail one last time to get the last set of links