2009-06-25 11 views
2

Für mein neues Projekt, das E-Mail-Modul.I muss alle E-Mail-Informationen auf Web.Wenn ich einen Anruf an den Server bin ich bekomme die Base64-codierte MIME-Daten. nach Base64 Decodierungstechnik im Anwenden der MIME-Daten erhalten, wie folgt:Parse MIME-Nachrichten

/********************* MIME-Daten beginnen ******** ***************************/

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-- 

/************** ******* Mime Daten Ende ************************************/

Jetzt ist das Problem, ich muss diese Daten analysieren und sie in meiner Anwendung verwenden. Da diese Daten kein XML sind, so ist es schwierig, es zu parsen (weil das Parsen mit einem Tag einfach ist) .so jeder, der Pantomime-Daten zu parsen weiß helfe be.im mit erlang, um diese Daten zu parsen.

Vielen Dank im Voraus

Antwort

4

gen_smtp und erlang_smtp Code enthalten MIME-Nachrichten zum Parsen.

+0

aber scheint nicht in meinem Kontext keine Möglichkeiten thanx – Abhimanyu

2

Ah, tut mir leid ... OK. Dann kann ich im Geiste von Gollum und dem Rätselspiel nur "Yaws or nothing" anbieten, was nicht sehr fair ist, denn es sind wirklich zwei Vermutungen in einem.

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

Allerdings ist Ihren eigenen Mime-Parser rollt nicht sehr hart. Holen Sie sich die "Grenze" und teilen Sie die Nachricht in Zeilen, die mit "-" übereinstimmen. Analysieren Sie dann für jeden Chunk Überschriften, bis Sie zu CRLF, CRLF gelangen. Dann beginnt dein Inhalt.

Ich weiß, dass Antworten, die sagen "eine andere Sprache verwenden" sind im Allgemeinen nicht hilfreich. Ich nehme an, dass Sie Erlang nicht als "die Sprache, die diesen Job erleichtern wird" gewählt haben, also vermute ich, dass es eine externe Einschränkung gibt. Möchten Sie den Grund teilen, dass Erlang Ihre bevorzugte Lösungssprache ist? :)