Premesso che non so che report stai inviando, che non conosco la classe che usi e che non so come sono strutturati i tuoi report, a occhio e croce direi che devi tirar fuori il comando per inviare l'e-mail dal while. In questo modo eviti che ti invii un'email per ogni record estratto dalla query.