5 messaggi dal 31 maggio 2006
Salve a tutti, ho il seguente problema:
ho un applicazione che all'inserimento di un record deve inviare una mail ad un dato indirizzo (e fin qui nessun problema), poi però devo attendere una mail di risposta ed in funzione dell'oggetto devo eseguire una determinata azione..

Avete qualche idea su come farlo.?

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
spiega cosa sono queste email di risposta, se conferme di lettura, conferme di recapito, bounce di errori verificatisi con la casella, o semplici risposte inviate manualmente dall'utente.
Qualunque sia il caso, la mail di risposta potrebbe potenzialmente arrivare dopo ore (o giorni), quindi nella tua applicazione devi prevedere questa situazione, magari scrivendo "in attesa di risposta" nella pagina.

Quando finalmente la mail di risposta arriva, potrai leggerla con un client IMAP. Esistono librerie che ti consentono di accedere ad un server IMAP in maniera programmatica, da codice C# o VB.NET.

Tuttavia, prima chiediti se questo è realmente necessario. Per esempio, se volessi raccogliere la scelta dell'utente, potresti mettergli dei link nella mail. Ciascuno di questi link (es. uno per l'approvazione e uno per il rifiuto). punterà ad una pagina della tua applicazione web che, in base ai parametri ricevuti, aggiornerà opportunamente il database.

Comunque, spiega cosa deve fare l'applicazione, sarà più semplice darti consigli precisi.

ciao,
Moreno

Enjoy learning and just keep making
5 messaggi dal 31 maggio 2006
Grazie Moreno per la tua risposta,
in realtà questa tipo di funzionalità non l'ho decisa io ma è quello che mi hanno detto di fare.
Praticamente devo registrare un record e alla registrazione inviare in automatico una mail ad un indirizzo predefinito (probabilmente con una stringa allegata); poi automaticamente dovrebbe arrivarmi una risposta (non viene gestita da una persona, ma è una cosa automatica), io praticamente devo confermare il record solamente dopo aver letto la risposta ricevuta. Anche io ho delle perplessità nell'utilizzare una mail per gestire questa cosa, ma l'altra azienda mi ha detto che lavora in questo modo...!!
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,

netlevel ha scritto:

non viene gestita da una persona, ma è una cosa automatica

ah, d'accordo. Credo che abbiano voluto usare l'email per avere una maggiore affidabilità nella consegna dei messaggi. Infatti, se anziché consegnare una mail avessero inviato una richiesta HTTP ad una tua pagina, il messaggio sarebbe andato perso definitivamente, nel caso in cui il tuo server fosse temporaneamente non raggiungibile. Il problema si risolve mettendo il messaggio in una coda e riprovando successivamente. Dato che i server di posta già implementano questo meccanismo, devono aver pensato di sfruttare quello.

Dunque, veniamo a noi.
Come ti dicevo, dovresti usare una libreria in grado di leggere i messaggi di risposta dal server IMAP. Vedi questa, per esempio:
http://www.codeproject.com/Articles/8008/IMAP-Client-library-using-C
Dovrai usarla per ottenere l'elenco dei messaggi arrivati nella inbox e leggerne il corpo per capire che tipo di risposta ti è stata inviata.
Dopo aver eseguito le tue operazioni, cancella il messaggio dalla inbox, ad indicare che il messaggio è stato ormai lavorato.

Questa operazione ovviamente non la fare dalla pagina aspx in maniera sincrona, perché non è dato sapere quando arriverà la mail automatica. Potrebbe impiegare qualche minuto o qualche ora, tutto dipende dal tuo server di posta.
Invece, dovresti predisporre un task in background che, ad intervalli di tempo regolari, si collegherà al server IMAP con la suddetta libreria per verificare la presenza di nuovi messaggi.
Ecco alcune tecnologie che possono aiutarti ad eseguire questo task in background in un'applicazione ASP.NET.
http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx
Tra quelli, il primo che potresti provare è FluentScheduler, che è abbastanza leggero e con poche righe di codice riesci a configurare il task ricorrente.

ciao,
Moreno.
Modificato da BrightSoul il 30 dicembre 2014 18.33 -

Enjoy learning and just keep making

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.