Esportazione di pagine ed allegati in formato MIME
L'esigenza iniziale era quella di incorporare in un unico file, immagini, stili e contenuto HTML per l'invio come allegato in un messaggio di posta elettronica, senza dover allegare separatamente i vari componenti al messaggio stesso o inserire il tutto nel corpo dello stesso.
Questa libreria si basa sulla CDO for Windows COM Library, per effettuare la conversione di un flusso HTML contenente immagini e fogli di stile CSS in un file unico di tipo Multipart MIME.
In tale formato tutti i contenuti sono serializzati nella rappresentazione Base64 ed ognuno è marcato con l'header MIME standard.
In base all'estensione stessa del file generato può essere aperto con applicativi diversi:
- .mht: Internet Explorer
- .eml: come messaggio Outlook
- .doc: con Word
- .xls: con Excel
In ogni caso vengono mantenute le immagini e la formattazione del testo originale.
La soluzione di esempio allegata comprende una libreria di classi scritta in VB.NET che contiene le funzioni di conversione dello stream HTML in formato MIME, un sito web base contenente una pagina iniziale Default.aspx e una pagina di esempio che viene convertita.

La conversione avviene con il metodo ConvertPageStringToMHTString contenuto nella libreria mhtManager. Sono presenti le due funzioni CaricaMHTimages e CaricaMHTcss che scorrono il flusso HTML in arrivo e provvedono a restituire la collection di immagini e stili CSS, oltre che a correggere i percorsi in modo che siano assoluti.
Le collezioni di immagini e files CSS restituite verranno poi incluse nel flusso MIME risultante nel metodo qui in esame.
Le varie funzioni viste sfruttano gli oggetti definiti tramite le classi contenute nella directory DOM della libreria che servono a contenere le immagini e i file css (mhtImageCollection , mhtCssCollection, mhtImage, mhtCss).
Questo lavoro è frutto di una rielaborazione di questo articolo di CodeProject, al cui autore vanno i ringraziamenti.
Il download è disponibile da questo indirizzo.
Approfondimenti
#982 - Introduzione al databinding con ASP.NET MVC
Tutto per portarsi il .NET Framework 3.5 sotto l'ombrellone
Disponibile la fix GDR del .NET Framework 3.5 SP1
Redgate ANTS Profiler 4.0
IIS 7.0 in Windows Server 2008 R2
#974 - Aggiungere il supporto a DesignTime per un custom control di ASP.NET con Template
#983 - Modificare le impostazioni dell'Handler dei controlli di charting di ASP.NET
Routing e dynamic data control di ASP.NET 3.5 SP1
Rilasciata una nuova versione dell'AjaxControlToolkit
I nuovi controlli di ASP.NET 3.5: LinqDataSource, ListView e DataPager
Generare dinamicamente da ASP.NET uno stream JPEG da una webcam con driver WIA
#960 - Il controllo EntityDataSource in ASP.NET 3.5 SP1



















Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.