12 messaggi dal 31 agosto 2007
Salve a tutti,
qualcuno sa come fare ad inviare una mail in modo asincrono? ho visto che c'è il metodo Metodo SmtpClient.SendAsync ma non riesco a farlo funzionare e in particolare cos'è il token?
Grazie.
Modificato da cikka il 27 settembre 2007 15.44 -
Modificato da cikka il 27 settembre 2007 15.52 -
47 messaggi dal 18 settembre 2006
Contributi
Per l'utente finale, SendAsync() può essere utilizzato in maniera identica a come si potrebbe utilizzare Send(). Il token è un oggetto che si può opzionalmente passare a SendAsync(); al termine dell'operazione di spedizione - che avviene in modalità asincrona - l'istanza di SmtpClient richiamerà eventuali sottoscrittori dell'evento SendCompleted, fornendo loro il token passato a SendAsync() in fase di spedizione.

In parole povere, se non hai bisogno di effettuare qualche operazione particolare in seguito alla spedizione di un messaggio (tipo tracking in un database) puoi passare null.

HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
12 messaggi dal 31 agosto 2007
ciao,
adesso ti faccio vedere il mio codice, magari sbaglio qualcosa

Dim MyEmail As System.Net.Mail.MailMessage
Dim Mittente As System.Net.Mail.MailAddress
Dim OutSmtp As System.Net.Mail.SmtpClient

MyEmail = New System.Net.Mail.MailMessage
Dim token As Object = ""
Mittente = New System.Net.Mail.MailAddress(Session("email"), Session("utentedes"))
MyEmail.From = Mittente
MyEmail.To.Add(tot.Text)
MyEmail.Subject = oggetto.Text
MyEmail.Body = corpo.Text
OutSmtp = New System.Net.Mail.SmtpClient("out.alice.it")
'OutSmtp.Send(MyEmail)'così funziona
OutSmtp.SendAsync(MyEmail, token) 'cosi no
MyEmail = Nothing
OutSmtp = Nothing
Mittente = Nothing

l'errore che mi da è:
Asynchronous operations are not allowed in this context. Page starting an asynchronous operation has to have the Async attribute set to true and an asynchronous operation can only be started on a page prior to PreRenderComplete event.

grazie mille
47 messaggi dal 18 settembre 2006
Contributi
cikka ha scritto:
Asynchronous operations are not allowed in this context. Page starting an asynchronous operation has to have the Async attribute set to true and an asynchronous operation can only be started on a page prior to PreRenderComplete event.


E' sufficiente che imposti nella dichiarazione della pagina l'attributo Async=true:

<%@ Page ... Async="True" ... %>


Dovrebbe bastarti questo nel 99% dei casi.
Ciao

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005
12 messaggi dal 31 agosto 2007
grazie mille,
pare che vada...anche se non sono molto convinta che invii la mail in modo asincrono, per lo meno x come la interpreto io, appena premo il bottone di invio della mail dovrebbe fare subito il refresh della pagina e in seguito inviare la mail o le mail(ex 100 ne caso di mailing list) e nel mio caso prima di fare il refresh della pagina invia la mail...
cmq grazie. mille
12 messaggi dal 31 agosto 2007
scusami ancora...e se volessi ricevere un msg di conferma dell'invio mail con il SendCompleted dovrei passare il token?
grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.