2009-06-25 7 views
2

Pour mon nouveau projet qui a email module.i besoin d'afficher toutes les informations e-mail sur le web. Quand je fais un appel au serveur je reçois les données MIME encodées en base64. après l'application de la technique de décodage base64 im obtenir les données de mime comme suit:Parse messages MIME

/********************* données Mime commencent ******** ***************************/

From [email protected] Tue Jun 23 12:01:02 2009 
Date: Tue, 23 Jun 2009 12:01:02 +0530 
From: Prashant R Naik <[email protected]> 
To: [email protected] 
Subject: This is a test mail 
Message-ID: <[email protected]> 
Reply-To: Prashant R Naik <[email protected]> 
MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary="ReaqsoxgOBHFXBhH" 
Content-Disposition: inline 
User-Agent: Mutt/1.5.18 (2008-05-17) 
Status: RO 
Content-Length: 1912 
Lines: 52 


--ReaqsoxgOBHFXBhH 
Content-Type: text/plain; charset=us-ascii 
Content-Disposition: inline 

Test mail. 
Initiated by prashant 

Regards, 
-- 
Prashant R Naik 
Principal Technologist | Symbian & Web2.0 
Geodesic Limited | www.geodesic.com 
Tel: +91-80-66551000 

--ReaqsoxgOBHFXBhH 
Content-Type: image/gif 
Content-Disposition: attachment; filename="trash.gif" 
Content-Transfer-Encoding: base64 

R0lGODlhEAAQANUoADJ8wTqU2DmR1TqV2DN9wTSBxTWFyTaGyTJ9wTWGyTaKzjmS1TOAxTuV 
2DaFyTN8wDiN0jiO0jSAxTeKzjqS1DN8wTqR1TWFyjB4vTOBxTmO0TmS1DaKzTeJzTqV1zSA 
xDJ8wDqS1TeKzTF4vDF4vTiO0f///zuX2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACgALAAA 
AAAQABAAAAaDQNRpSCwWhcakcsk8mZ5Qpik5pUKvT2W1uDVWp+BiYNAImAZmz/lcDoQEFoFp 
QTFtTPKFQLCAREolJiURJhCCJhqAJRMiIhwmjSYdJgqUjQoODgkJJgecBp0mBgYXBx8ZBQxY 
UAUSDAUACLEPDwgEAAAEIBUEtygkIyMkwMMYw8EjKEEAOw== 

--ReaqsoxgOBHFXBhH 
Content-Type: image/jpeg 
Content-Disposition: attachment; filename="bx.jpg" 
Content-Transfer-Encoding: base64 

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB 
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEB 
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAAR 
CAAUAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAn/xAAYEAEAAwEAAAAAAAAA 
AAAAAAAAGWen5//EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA 
/9oADAMBAAIRAxEAPwCb4AJHym0Vp3PQJTaK07noJHgA/9k= 

--ReaqsoxgOBHFXBhH 
Content-Type: image/png 
Content-Disposition: attachment; filename="day_bg.png" 
Content-Transfer-Encoding: base64 

iVBORw0KGgoAAAANSUhEUgAAAGQAAAApCAYAAADDJIzmAAAABmJLR0QA/wD/AP+gvaeTAAAA 
CXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AwCCS0kTriU2QAAAB10RVh0Q29tbWVudABD 
cmVhdGVkIHdpdGggVGhlIEdJTVDvZCVuAAAAXElEQVR42u3bQQEAMAgDMZiqiZtP5AwbfeQk 
NO/WvPtLMR0TABEQIAICRECACAgQAREQIAICRECACAgQAREQIAICRECACAgQAREQIAICRECA 
CAgQARGQ7NpPPasFT+0FZPjBRwYAAAAASUVORK5CYII= 

--ReaqsoxgOBHFXBhH-- 

/************** ******* Fin des données MIME *********************************/

Maintenant, le problème est que je dois analyser ces données et les utiliser dans mon application. Puisque ces données ne sont pas un XML, il est difficile de les analyser (parce que l'analyse d'un tag est facile), donc quelqu'un qui sait comment analyser les données. help be.im en utilisant erlang pour analyser ces données.

Nous vous remercions à l'avance

Répondre

4

gen_smtp et erlang_smtp contiennent du code pour analyser ces mime.

+0

mais ne semble pas utile dans mon contexte de toute façon merci – Abhimanyu

2

Ah, désolé ... OK. Puis, dans l'esprit de Gollum et du jeu d'énigme, je ne peux offrir que «Yaws ou rien» ce qui n'est pas très juste, car c'est vraiment deux suppositions en une.

http://yaws.hyber.org/yapp_intro.yaws

Cependant, votre propre analyseur de roulement mime est pas très difficile. Obtenez le "Limite" et diviser le message sur les lignes correspondant à "-". Ensuite, pour chaque segment, analysez les en-têtes jusqu'à ce que vous obteniez CRLF, CRLF. Ensuite, votre contenu commence.

Je sais que les réponses qui disent «utiliser une langue différente» ne sont généralement pas utiles. Je vais deviner que vous n'avez pas choisi Erlang comme "la langue qui va faciliter ce travail", donc je suppose qu'il y a une contrainte externe. Voulez-vous partager la raison pour laquelle Erlang est votre langue de solution préférée? :)