Posso saltare MIME-analisi per ottenere un allegato?
-
21-08-2019 - |
Domanda
Sono nuovo qui quindi prima di tutto il mio saluto a voi
Sto scrivendo un'applicazione per funzionare su Windows Mobile (Pocket PC). Cordiali saluti, sto usando VB.NET.
La mia idea è quella di utilizzare il mio account di posta elettronica con il mio fornitore, che mi dà un sacco GB: s da usare, come un disco di archiviazione virtuale online. In poche parole, più o meno come il GMAIL-drive, che potete leggere su. Ho già scritto il codice per la connessione, utilizzando un telnet-socket, a conti SMTP, POP3 e IMAP del mio provider. Posso entrare e, quindi, fin qui tutto bene.
Nel mio caso specifico, io non sono interessato a delle e-mail themselfes, ma in realtà gli allegati, che saranno il mio file su questo storgae-carta virtuale. Ho trovato un sacco di lezioni gratuite, per lo più in C #, per scaricare le e-mail con allegati e più importante, il MIME-analisi. Purtroppo tutte queste classi, in un modo o nell'altro, utilizza le classi / spazi dei nomi del Net Framework che non sono inclusi nel NET Compact Framework che viene utilizzato da Windows Mobile. Scrivi MIME parser me è troppo complesso per me e la mia conoscenza.
Quindi, almeno per quanto riguarda il mio codice per la ricezione via POP3 o IMAP, pensavo che una volta ho scaricato tutti i byte sul mio dispositivo, vorrei semplicemente analizzare l'e-mail completo (verifica dove i confini sono) e ottenere la parte (s) che sono stati codificati in Base64 e poi decodificarlo e rinominarlo con il nome e l'estensione del file, che ho scritto nel soggetto campo della e-mail al momento dell'invio. In questo modo, ho potuto forse evitare ogni cose su MIME e tutti i suoi significati ...
Che riguarda, l'invio attraverso' SMTP, devo ancora esaminare il problema. Tutte le idee sarebbe apprezzato.
Ci scusiamo per questo romanzo - che ne pensi? - posso skip MIME-parser e basta usare normale stringa-analisi
Cordiali saluti, Moster67
Soluzione
Un parser MIME è solo un parser stringa. Sono molto facili da scrivere, soprattutto se si sa che si desidera solo / bisogno di un sottoinsieme dei tipi MIME. Occhiata RFC e realizzare da soli.
Altri suggerimenti
Si può provare a cercare i href="http://en.wikipedia.org/wiki/MIME#Multipart_messages" nelle intestazioni di posta e poi dividere il e-mail su questa stringa. L'analisi del sottoparti sarà IMHO necessario (codifica e charset vengono in mente, basta far cadere le intestazioni non funziona nella maggior parte dei casi), ma un po 'più facile che fare con l'intero messaggio in una sola volta.
Una parola di cautela: questo è un approccio friabile - sarà il lavoro su alcuni messaggi, ma rompere sugli altri (ad esempio, i messaggi in più annidati, cambiando stringa di confine (non dovrebbe, ma potrebbe accadere), ecc.)
scrivendo un parser di stringa del messaggio di posta elettronica è in realtà la scrittura di un semplice parser MIME. È possibile scrivere un parser MIME quick-and-dirty in poche ore. Se si intende utilizzare per l'analisi di mail simili (per esempio inviato da un luogo dal medesimo software client) deve tutto il necessario.
Per ulteriori dettagli su MIME vedere
- RFC 2045
- RFC 2046
- RFC 2047
- RFC 2048
- RFC 2049
- RFC 847, 3217, 3370, 3852, 3851, 3850 sono anche rilevanti, ma li si può saltare per avvio
A pochi giorni di lavoro dovrebbero essere realistici. Sono stato coinvolto nello sviluppo di un semplice parser MIME in-house (preso qualche giorno per incidere e analizzato il 95% delle e-mail ricevute), che envolved in un prodotto commerciale (pochi mesi di lavoro, tonnellate di unittest e hudreds di messaggi di posta elettronica di prova davvero vierd dal selvaggio) e poi è stato modificato in modo che possa essere utilizzato in struttura compatta (cambia a causa di dispositivi di memoria limitata, cambia perché solo piccola porzione di framework NET viene portato su NET CF). E aggiungere riscrittura di abbastanza grande parte della funzionalità CryptoAPI al fine di rendere firmato e crittografato S / MIME messaggi di posta elettronica funzionano su .NET CF.
Il parser MIME fa parte del Rebex Secure Mail for .NET / .NET CF componenti e può essere scaricata da http://www.rebex.net/secure-mail.net/
Sono supportate tutte le versioni di .NET e .NET CF. Anche i dinosaurus .NET CF1 ;-). Tuttavia, non è gratuito.