Esportazione di pagine ed allegati in formato MIME

di Daniele Bagnai, in ASP.NET 2.0,
  • 0
  • 0
  • 0
  • 316,15 KB

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.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti