2010-05-08 15 views
5

Sto pianificando di scrivere un'applicazione che dovrebbe gestire i messaggi in arrivo. Fondamentalmente agirà più come un sistema di ticketing che come una webmail, quindi sono interessato solo a ricevere e-mail e non a inviarle.Decoding MIME (HTML + Attachments)

Ho realizzato un semplice prototipo che scarica mail e visualizza il testo con allegati scaricabili in una pagina Web, ma la gestione delle mail da Outlook e da altri è più complicata. Ho visto alcuni dei sistemi di ticketing open source là fuori, ma la maggior parte del codice è legata al sistema ed è difficile da separare.

Esiste una libreria che comprende la posta "ricca" e semplifica questo lavoro? Preferibilmente in Python, Java, Ruby o Perl. Sono inoltre aperto a suggerimenti per qualsiasi client di posta della riga di comando che può essere utilizzato per questo, dal momento che il sistema non riceverà grandi quantità di posta e può permettersi di avviare processi esterni.

Edit:

che so di librerie di posta standard in Python e Java e in grado di gestire la posta in sé, ma sto cercando una libreria che mi può aiutare con i "ricchi" messaggi di posta elettronica creati da Outlook/Thunderbird che contiene immagini di formattazione e inline.

+0

Una libreria per aiutarti a * cosa * con loro? Non sono speciali I messaggi sono HTML e le immagini in linea sono nella struttura MIME. – hobbs

+0

Outlook può inviare mail sia in HTML che nel proprio formato proprietario "Rich", che è simile a RTF, penso. Naturalmente posso creare qualcosa che funzioni, ma sarei più a mio agio se ci fosse una libreria là fuori che è stata testata con posta da una gamma di client di posta elettronica –

+0

HTML è relativamente banale, ma ci sono anche altre cose da gestire. Outlook può inviare mail contenenti un file "Transport-Neutral Encapsulation Format" (http://support.microsoft.com/kb/269186), RTF e altri standard proprietari. Questo problema deve essere stato risolto dagli autori dei client di posta prima, quindi mi piacerebbe riutilizzare il loro lavoro. –

risposta

0

Python ha il pacchetto email con nome appropriato per la gestione dei messaggi di posta elettronica.

+0

Grazie, ma non è l'effettivo parsing di MIME che è il problema, ma la conversione di email create da Outlook con immagini incorporate ecc. allo standard HTML. –

+0

A meno che non ci siano librerie già pronte per questo, è quasi banale dato che HTML supporta anche le immagini inline. –

1

Nella libreria standard Python ci sono diversi pacchetti di gestione e-mail. Non ho lavorato molto con loro, quindi non sono sicuro che facciano esattamente ciò che intendete, ma se non lo avete già suggerirei di dare un'occhiata ad es. il email package.

Se stai cercando qualcosa di più alto livello, sono sicuro che ci sono librerie di terze parti disponibili.

+0

Grazie, ma quelle librerie si concentrano principalmente sulla decodifica delle mail e sto cercando qualcosa in grado di gestire i messaggi "ricchi" creati da Outlook, Thunderbird, ecc. Con immagini incorporate e testo formattato. –

+0

Forse lo sapevi, ma le email "ricche" sono in realtà solo messaggi multipart MIME. Il testo del corpo HTML è una parte e ogni immagine in linea è un'altra parte. Se quello che vuoi fare con questi messaggi è abbastanza semplice, potresti semplicemente scrivere uno script veloce per creare un oggetto 'email.MIMEMultipart' dal messaggio e fare quello che vuoi con esso. –

0

PHP ha le funzioni imap con imap_fetchstructure e imap_fetchbody u è in grado di gestire tutti i tipi di e-mail ma è piuttosto difficile.

U può anche guardare http://www.squirrelmail.org/ e strappare la parte di visualizzazione e-mail.

1

Per Perl, controllare Ricardo Signes 'Email::MIME per analizzare i messaggi multipart. Controlla walk_parts, applica ricorsivamente un callback a ciascuna parte di un messaggio multipart.

0

Zend Framework ha un pacchetto chiamato Zend_Mail in grado di gestire le email multipart, allegati, contenuti MIME ed e-mail HTML

Il collegamento è here

0

ciò che si desidera non è disponibile in questo momento in java (per quanto come so), è necessario ricevere il flusso di dati e-mail e creare il proprio wrapper su librerie di parser e-mail.

ho creato soluzione simile in java che prende nel flusso di dati e-mail in entrata e dà fuori un oggetto di posta elettronica che contiene il corpo del messaggio (testo normale e HTML entrambi), allegati ecc

E 'in grado di gestire mail da tutti dei client di posta elettronica che conosco almeno.

Io uso mime4j (parser di flusso di dati di posta elettronica) per il mio compito ed è molto meglio di API di posta java.