invio mail massivo

Buongiorno ed auguri di Buona Pasqua a tutti!

come da titolo, devo inviare una mail a tutti i record presenti all’interno di una tabella (attualmente sono una 50ina)

questo il mio ciclo:

  Dim db As New MSSQLServerDatabase
  
  db.Host ="192.168.1.226" // or just the IP if using the default instance
  db.DatabaseName = "SalCommessa"
  db.UserName = "sa"  // or "Domain\\UserID for trusted domain accounts
  db.Password = "XXXYYYY"
  
  If db.Connect Then
    
    
    //recupero commesse
    dim stringa_sql as string
    Dim ps As MSSQLServerPreparedStatement
    Dim rs As RecordSet 
    
    stringa_sql="Select Commessa,Codice_Cliente,Ragione_Sociale,E_Mail,Italia_Estero,Perc_Lavorato,Stato,Data_Consegna"
    stringa_sql=stringa_sql+" from Elenco_Commesse "
    ps = db.Prepare(stringa_sql)
    
    rs = ps.SQLSelect
    if rs <> Nil Then
      While Not rs.EOF
        //invio mail
        dim smtp as new SMTPSecureSocket
        smtp.Address = Icam_SAL_Commessa.smtp_host
        if Icam_SAL_Commessa.smtp_secure="True" then
          smtp.Secure = true
        else
          smtp.Secure = false
        end if
        smtp.Port = Icam_SAL_Commessa.smtp_port.Val
        smtp.ConnectionType = 1
        smtp.Username = Icam_SAL_Commessa.smtp_account
        smtp.Password = Icam_SAL_Commessa.smtp_password
        
        Dim mail As New EmailMessage
        
        Dim testocom as string
        
        mail.FromAddress = Icam_SAL_Commessa.smtp_account
        mail.AddRecipient("emmecisistemi@gmail.com")
        mail.Subject = "prova invio commessa "+rs.IdxField(1).StringValue
        
        testocom = ""
        testocom=testocom+rs.IdxField(1).StringValue+"invio di test - Ciro - "+rs.IdxField(7).StringValue
        'testocom=ReplaceAll(testocom,"[cognome]",LstComunicazioni.Cell(i,2).Trim)
        dim lines() as string
        lines.Append testocom
        
        mail.BodyPlainText = Join(lines, EndOfLine)
        smtp.Messages.Append(mail)
        smtp.SendMail()
        
        msgbox("inviata mail commessa "+rs.IdxField(1).StringValue)
        
        app.SleepCurrentThread(3000)
        
        rs.MoveNext
      Wend
      rs.Close
    end if
    db.Close
  Else
    MsgBox("Connection error:" + db.ErrorMessage)
  End If

il problema che, mentre vedo i vari msgbox che scorrono sui vari record, o non mi arrivano proprio le mail (ho messo a tutte per ora il mio indirizzo di gmail come destinatario) o me ne arrivano solo 2-3, come mai?
oppure, avete un altro modo per fare questo tipo di operazione?

aggiungo che l’invio avviene via smtp utilizzando una casella ed i parametri di Aruba.

grazie