Ciao, il formato MIME è testuale quindi tutte le informazioni sono in chiaro ma ti sarà estremamente utile una libreria tipo questa:
http://www.codeproject.com/KB/cs/mime_project.aspxricardo78 ha scritto:
invio le mail ad esempio un indirizzo preimpostato, il quale poi provvederà a raccogliere la mail e a salvarla su un db sql, si riesce a fare?
sì, si può fare. Quando la mail verrà recapitata all'indirizzo preimpostato, resterà lì in attesa di essere letta. Tu dovrai collegarti al server di posta mediante protocollo IMAP o POP3 e scaricare periodicamente ogni nuova e-mail in maniera programmatica. Ti possono aiutare client tipo questi:
http://www.codeproject.com/KB/IP/imaplibrary.aspxhttp://hellowebapps.com/products/imapx/http://www.codeproject.com/KB/IP/despop3client.aspxIl protocollo IMAP, in particolare, supporta anche le notifiche dal server, quindi se non vuoi stare a fare polling ogni 5 minuti, avresti l'opportunità di mantenere aperta una connessione al server ed essere notificato dell'arrivo di nuovi messaggi in tempo reale. Non mi addentro in questo discorso perché non ne ho esperienza, e tutto dipende da come è configurato il server di posta. Chiedi la fattibilità all'amministratore di sistema ma se anche dovessi fare polling riuscirai comunque ad ottenere tutti i messaggi giunti nella casella nel frattempo.
In un modo o nell'altro, quando hai ottenuto il messaggio MIME dal server, lo potrai parsare con la suddetta libreria, e inserire in un database le informazioni che avrai estratto.
Ricapitolando, avresti questa catena di eventi:
- 1. Un utente invia un'email usando Outlook o altro programma di posta ad un'indirizzo prestabilito
- 2. Il tuo programma usa un client IMAP o POP3 per accedere alla casella e controlla la presenza di nuovi messaggi
- 3. Se ci sono nuovi messaggi, li scarica e ne parsa il contenuto grazie alla libreria che ti ho linkato in alto
- 4. Tali informazioni vengono quindi inserite nel database
- Opzionalmente, al termine di questa operazione il messaggio di posta viene rimosso dalla casella.
Poi c'è un'alternativa che sarebbe interessante esplorare: le
FileTable di Sql Server 2012 (Denali). Se il server di posta è sotto il tuo controllo e se riesci ad accedere alla cartella in cui vengono fisicamente memorizzati i messaggi di posta, allora potresti creare una FileTable direttamente su quella cartella. Così salteresti a piè pari i punti 2, 3 e 4 e avresti la possibilità di eseguire query SQL direttamente su quei messaggi, come se fossero records di una tabella tradizionale. So che si possono effettuare ricerche sui metadati dei file, ma non ti so dire se il motore riesce esso stesso ad estrarre informazioni dal formato MIME come l'indirizzo del mittente o l'oggetto della mail. Giusto per curiosità, qui c'è un video introduttivo che ne mostra il funzionamento.
http://www.youtube.com/watch?v=64m8nf0eLK8ciao
Modificato da BrightSoul il 06 dicembre 2011 22.38 -