sì, sono stato in grado di scrivere un parser di base, basato su quello rfc e alcuni altri tutorial di base. ma sono i confini mime multiparte che continuano a rovinarmi.
ho scoperto che i messaggi MMS (non SMS) inviati dal mio telefono sono solo e-mail standard, quindi ho un sistema che legge l'email in arrivo, controlla il da (per consentire solo dal mio telefono), e usa il corpo parte per eseguire diversi comandi sul mio server. è come un telecomando per email.
perché il sistema è progettato per inviare immagini, ha un sacco di parti codificate in modo diverso. una parte mms.smil.txt, un text/plain (che è inutile, dice semplicemente 'questo è un messaggio html'), una parte application/smil (che la parte su cui i telefoni dovrebbero apparire), una parte text/html con una pubblicità per il mio operatore, poi il mio messaggio, ma tutto racchiuso in html, quindi finalmente un file di testo allegato con il mio messaggio semplice (che è la parte che uso) (se spingo un'immagine come allegato nel messaggio, viene messa in allegato 1, codificato Base64, quindi la mia porzione di testo è allegata come allegato 2)
l'ho fatto funzionare con il formato di posta esatto dal mio operatore, ma quando ho eseguito un messaggio da un altro telefono attraverso di esso, non è riuscito in un un sacco di modi miserabili.
ho altri progetti che mi piacerebbe estendere questo telefono-> mail-> parse-> il sistema di comando a, ma ho bisogno di avere un parser stabile/solido/generico per ottenere le diverse parti fuori dalla posta per usalo
il mio obiettivo finale sarebbe quello di avere una funzione che potrei alimentare la posta in pipe grezza e recuperare un grande array con sottoarray associativi di intestazioni var: val pair e uno per il corpo del testo nel suo complesso stringa
più lo cerco sempre, più trovo la stessa cosa: giganteschi pacchetti di gestione della posta eccessivamente sviluppati che fanno tutto sotto il sole che riguarda le e-mail, o tutorial inutili (per me, in questo progetto).
Penso che dovrò mordere il proiettile e scrivere con cura qualcosa di mio.
Mi piace questo approccio, e funziona abbastanza bene per la maggior parte. Tuttavia, ho notato nella risoluzione dei problemi che non gestirà il wrapping delle righe di intestazione, ad esempio se gli indirizzi to: utilizzano più di una riga. –