Die E-mail Parts mit JavaMail erkennen?

Stromerzeuger

Mitglied
Hallo an alle.
Kann mir jemand sagen wie das eigentlich Funk.
Ich habe eine E-mail mit text/plain, text/html und einem image/gif
die Email ist eine multipart/mixed
und besteht aus 2 Pards:
->multipart/alternative
->image/gif
der Part multipart/alternative enthält mein text/plain und text/html
(also Parts im Part)

wie kann ich darauf zugreifen?
mit
if (content instanceof Multipart)
{

Multipart mp = (Multipart) content;
if (mp.isMimeType("text/plain"))
{...}
} klappt das nicht :confused::suspekt::confused:

gruss martin
 
Hi !

Müsste so funktionieren :

Java:
      Part messagePart=message;
      Object content=messagePart.getContent();
      if (content instanceof Multipart)
      {
        messagePart=((Multipart)content).getBodyPart(0)
        String contentType=messagePart.getContentType();
        
        if (contentType.startsWith("text/plain") || contentType.startsWith("text/html"))
        {
             ....
        }
      }

Gruss,

Krösi
 
Hi, nun klappt irgendwie nicht so wie ich das will.
hab den Code auch schon etwas verändert. das mit dem image/gif habe ich schon abgefangen. Das Problem ist aber das selbe.
ich will auf die UnterParts des Part: Multipart/alternative kommen (bzw. zugreifen)
ich habe den Code schon so weit:
Code:
...
 Object body = message[i].getContent();
  if (body instanceof Multipart) 
      { Multipart multipart=(Multipart)body;
        int    multizahl= multipart.getCount();
           for(int z=0; z < multizahl; z++)
                  {   
                     ...
                     Part part = multipart.getBodyPart(j);
                     MimeBodyPart mbp = (MimeBodyPart)part;                                  
                    if (part.isMimeType("multipart/alternative"))
                   {

und jetzt :(

gruss Martin
 
Hi !

Hast du mal den Original-Text (also quasi den "Sourcecode") einer Mail, die du Parsen willst ? Kannst ihn unter Outlook mit "strg + F3" ansehen. Hab mich damit auch mal auseinandergesetzt, allerdings nicht unter Java.

Krösi
 
Hi, nun mein Problem ist das alle schreiben das es Unterparts von Parts gibt, aber ich habe nirgends wo gesehen wo und wie man drauf zugreifen.!?

Den Code habe ich nicht mehr aber das passiert wenn man eine Html E-Mail verschickt mit Anhang. (z.B. mit GMX oder Yahoo) dann bekommt der Empfänger eine E-Mail mit zwei Parts einmal wie schon gesagt mit Multipart/alternative (die wiederum aus text/plan und text/Html bestecht) und dem Part image/gif (also den Anhang).
nun wollte ich wissen wie man auf das Html/part unter multipart/alternative kommt um es in der Datenbank zu speichern.

Ich habe es so gelöst das ich mir den (Stream) Multipart/alternative Part mit BufferedReader in ein String geschrieben habe und den dann jeweils an dem Boundary mit dem Nummercode abgeschneitten habe (mit split() ) und dann erfragte ob der Content-Type in den jeweiligen String[] ein text/html ist.

Die Frage ist ob man das nicht etwas schneller und einfacher heraus bekommt

Gruß Stromerzeuger
 
Hier eine e-mail in der ich text/html erfragen will.
gruss Stromerzeuger


From: xxx@xxx.de
Message-ID: <xxx@xxx.net>
MIME-Version: 1.0
Subject: Test
To: xxx@xxx.de
X-Authenticated: #6670726
X-Flags: 0001
X-Mailer: WWW-Mail 6100 (Global Message Exchange)
X-Priority: 3

--========GMX274111155717332566322
Content-Type: multipart/alternative;
boundary="========GMXBoundary274111155717332566567"

--========GMXBoundary274111155717332566567
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

Hallo das ist ein text
http://www.gmx.net/de/go/topmail?CUSTOMERNO=6670726&t=de1497157272.1155713258.b395be32

--========GMXBoundary274111155717332566567
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: 7bit

<html>
<head>
<title></title>
<style type="text/css" media="screen">
body {font-family: verdana, arial, helvetica, sans-serif;font-size: 12px;padding: 5px;margin: 0;background-color: #FFF;}
p, ul, li {margin-top: 0;margin-bottom: 0;}
blockquote {margin-left: 5px;}
div.signature {color: #666;font-family: monospace; font-size: 0.8em;}
</style>
</head>
<body>
Hallo das ist ein text
<div class="signature"><br /><br /><br />-- <br /><br /><br />
</div></body>
</html>

--========GMXBoundary274111155717332566567--

--========GMX274111155717332566322
Content-Type: image/jpeg; name="xxx.jpeg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="xxx.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
...
...
VEwJY4xHx+rPhRfbmndKp4oxVow5A4x3R3oNRMdwcW1jvSaL4zRdKr4oPDA4V35pXDSfVQphQG44
--========GMX274111155717332566322--
 
Zurück