Again - JavaMail

nastron

Mitglied
Hallo zusammen, also ich hab mir nen kleines Programm geschrieben, dass mir meine Emails ausgibt. Klappt wunderbar, wenn die email text/plain ist, wird sie in einem Textarea ausgegeben wenn die Email text/html ist, verarbeite ich das ganze mit der Hilfe von JEditorpane. Und hier kommt das Problem. Bei manchen zeigt er die Html-Seite an bei machen nicht. Hab mir den Html-code mal angesehen und festgestellt, dass es sich um Html + css handelt, wobei die Seiten die angezeigt werden auch Css beinhalten. Hab mal noch im Inet ein bisschen geforscht, da wird gesagt, dass man fuer html + css lieber jtextpane nutzen soll. Hat jemand nen gutes Tutorial, wo das beschrieben wird?
 
Zuletzt bearbeitet:
Danke fuer deinen aufschlussreichen Link 😀. Leider habe ich da nichts aufschlussreiches gefunden.
Mal kurzer Ausschnitt vom Code
[Java]
frame = new JFrame();
JTextPane text = new JTextPane();
text.setContentType("text/html");
text.setDocument(new HTMLDocument());
text.setEditable(false);
text.setText(s); // s ist der uebergebene String, in dem der Html-text steht
[/Java]
Den Code benutzt ich und damit wird mir ungefaehr 45% von den Html-Seiten angezeigt die css beinhalten, die anderen nicht. Kann mir jemand weiterhelfen?
 
Kannst du ein wenig mehr von deinem Programm posten?

Vielleicht hilft:

Java:
text.setStyledDocument(...);
 
HI, mit setstyleDocument, weiss ich nett.. da ich ja nen StringObjekt hab funzt das nicht.
Hier mal mehr Code:
Java:
public String Auslesen(String value)
  {
	  String G_Rueckgabe = "Nichts";
	  Part p;
	  Object o;
	  
	  try
	      {
		  
		 	  
	         for ( int i = 0; i < message.length; i++ )  
	          {
	        	 System.out.println(message[i].getSubject());
		         if(message[i].getSubject().equals(value)) 
		           {
			          p = message[i]; 
		              G_Rueckgabe = getText(p);
		              
		              break;
		           }
		         else
		           {
			  G_Rueckgabe = "I dont know";
		          }
		      } 
	         
	      folder.close( false ); 
	   	  store.close();   
	      } 
	  
	   catch(Exception e)
	   {
		   
	   }
	  
	 
	  return G_Rueckgabe;
  }
private String getText(Part p) throws MessagingException, IOException 

  {
     if (p.isMimeType("text/*")) 
       {
    	 try {
    	        if (p.isMimeType("text/html"))
    	          {
    		       String s2 = (String)p.getContent();
    		        Html_Ausgabe(s2);
    		        return "Es war Text/Html";
    	       
    	          }     }
    	 catch(Exception e){}
           String s = (String)p.getContent();
           return s;
       }

     if (p.isMimeType("multipart/alternative")) 
       {
// prefer html text over plain text
           Multipart mp = (Multipart)p.getContent();
           String text = null;
              for (int i = 0; i < mp.getCount(); i++) 
                {
                 Part bp = mp.getBodyPart(i);
                   if (bp.isMimeType("text/plain")) 
                     {
                       if (text == null)
                           text = getText(bp);
                       continue;
                     } 
                   else if (bp.isMimeType("text/html")) 
                     {
                       String s = getText(bp);
                       if (s != null)
                           return s;
                     } 
                       else 
                         {
                            return getText(bp);
                         }
                  }
                   return text;
       } 
     else if (p.isMimeType("multipart/*")) 
       {
          Multipart mp = (Multipart)p.getContent();
            for (int i = 0; i < mp.getCount(); i++) 
              {
                String s = getText(mp.getBodyPart(i));
                if (s != null)
                  return s;
              }
        }
                   return null;
}
Also zuerst wir zu die Methode Auslesen aufgerufen, die dann das jeweiligen MessageObjekt an getText uebergibt, welche widerum, falls der part text/html sein sollte die Mehtode Html_Ausgabe aufruft, welche den Code von oben beinhaltet. Weiss nett, ob das was hilft, glaube, dass der Jtextpane nicht alle Css ausgeben kann, naja, vielleicht weiss ja jemand noch was
 

Neue Themen


Zurück
Oben