Spedire una mail da form vb2008 monitorando lo stato dell'invio

giovedì 24 settembre 2009 - 16.09

jtpsala Profilo | Senior Member

Saluto tutti gli utenti di questo Forum.
Volevo chiedere se qualcuno poteva aiutarmi nel realizzare una cosa simile:
premetto che trasmetto una mail di grosse dimensioni da applicazione VB2008 ad un account gmail e siccome il tempo di attesa è abbastanza lungo, si ha la sensazione che il programma si sia inchiodato;
- creare una sorta di finestra tipo download di internet che misuri la grandezza del file da inviare, quanti byte/s sono stati inviati ed il tempi trascorso, il tutto accompagnato da una progressbar che dia la sensazione visiva di quanto manchi al termine della spezione della mail.

Vi ringrazio ancora tutti.
Pippo

freeteo Profilo | Guru

Ciao,
non c'è nessun evento che ti dia la "progressione" dell'invio della mail, piuttosto però potresti usare il "SendAsync" ossia lanciare la mail in maniera asyncrona appunto, ossia senza bloccare il Thread che l'ha lanciata, e fare piuttosto di una progressbar reale, qualcosa che "giri" in attesa della fine dell'invio.
Quest'ultimo evento invece ce l'hai, quindi lo riesci a capire, il tutto tradotto in codice è qualcosa di questo tipo:
... MailMessage msg = new MailMessage(); ... SmtpClient cli = new SmtpClient(); cli.SendCompleted += new SendCompletedEventHandler(cli_SendCompleted); cli.SendAsync(msg, null); } void cli_SendCompleted(object sender, AsyncCompletedEventArgs e) { ... }

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5