Micha: JavaMail - MimeMultipart alternative bzw mixed

Hallo,

ich möchte eine eMail versenden über die JavaMail-API. Hierbei möchte ich sowohl eine HTML als auch eine TXT Version senden und die eMail soll einen Anhang (PDF) enthalten.

Gundsätzlich habe ich mich an die Vorgaben auf der Insel orientiert. Das Tut von jGuru habe ich mir angesehen und auch das Beispiel hierzu.

Probelm ist nun das MimeMultipart-Objekt. Für den ersten Teil, also HTML bzw. Text-Mail sollte es new MimeMultipart("alternative"); lauten (siehe Insel) um einen Anhang als solches auch zu erkennen, ist es wiederum new MimeMultipart("mixed");.

Probelm ist nun, das ich beim ersten keinen Anhang sehe (außer im Quellcode der Mail) und bei der zweiten Variante die HTML-Mail als Anhang mitgeschickt wird. Wie bringt man beides unter einen Hut?

Mein Code hierzu (Probelm bereits die erste Zeile):

  
      MimeMultipart content = new MimeMultipart("alternative"); //mixed  
      MimeBodyPart text = new MimeBodyPart();  
      MimeBodyPart html = new MimeBodyPart();  
      BodyPart messageBodyPart = new MimeBodyPart();  
  
      // TXT-Mail  
      //text.setText( this.messageTXT );  
      text.setContent( this.messageTXT , "text/plain; charset=\"iso-8859-15\"");  
      text.setHeader( "MIME-Version" , "1.0" );  
      text.setHeader( "Content-Type" , "text/plain; charset=\"iso-8859-15\"" );  
  
      //HTML-Mail  
      html.setContent( this.messageHTML,  "text/html; charset=\"iso-8859-15\"");  
      html.setHeader( "MIME-Version" , "1.0" );  
      html.setHeader( "Content-Type" , "text/html; charset=\"iso-8859-15\""  );  
  
      //Anhang  
      DataSource fileDataSource = new FileDataSource( this.attachment );  
      messageBodyPart.setDataHandler( new DataHandler(fileDataSource) );  
      messageBodyPart.setFileName( this.attachment.getName() );  
  
  
      content.addBodyPart( text );  
      content.addBodyPart( html );  
      content.addBodyPart(messageBodyPart);  
  
      Properties props = new Properties();  
      props.put( "mail.smtp.host", "smtp.localhost.local" );  
      Session session = Session.getDefaultInstance( props );  
      //session.setDebug(true);  
      Message msg = new MimeMessage( session );  
      InternetAddress addressFrom = new InternetAddress( this.from );  
      msg.setFrom( addressFrom );  
      InternetAddress addressTo = new InternetAddress( this.recipient );  
      msg.setRecipient( Message.RecipientType.TO, addressTo );  
      msg.setSubject( this.subject );  
  
      msg.setContent( content );  
      msg.setHeader( "MIME-Version" , "1.0" );  
      msg.setHeader( "Content-Type" , content.getContentType() );  
  
      msg.setSentDate( new Date() );  
  
      Transport.send( msg );

Kann man zwei MimeMultiparts setzen (wiederspricht ja irgendwie dem Sinn) oder wie handhabt man das?

Mit freundlichem Gruß
Micha