Newsgroup: it.comp.java
Titolo: Sto giocando un po' con javamail ...

In una email in forma HTML ho bisogno di aggiungere,
n allegati, ma, dal basso della mia esperienza, ho
grossi problemi con gli allegati.
Le eMail arrivano arrivano correttamente formatate
in maniera adegata, ma gli allegati non si sono.
Questa la parte di codice interessato.
// testo della E-Mail
StringBuffer sb = readMail(email);
// Corpo della eMail
MimeBodyPart mBP = new MimeBodyPart();
Multipart mpEmail = new MimeMultipart("email");
Multipart mpAttach = new MimeMultipart("attach");
 
mBP.setContent(sb.toString(), "text/html");
mpEmail.addBodyPart(mBP);
DataSource source = new FileDataSource( logo );
mBP = new MimeBodyPart();
mBP.setDataHandler( new DataHandler(source) );
mBP.setHeader("Content-ID","logo");
mBP.setDisposition( Part.INLINE );
mpEmail.addBodyPart(mBP);
 
// In pesenza di allegati
if (fileFlag) {
 
    // Allegati
    for (int i = 0; i < 10; i++) {
        if (!vFile[i].equals("")) {
           mBP = new MimeBodyPart();
	  mBP.setText("\n\r");
	  DataSource src = new FileDataSource(vFile[i]);
	  mBP.setDataHandler(new DataHandler(src));
	  String fil = nameFil(vFile[i]);
	  mBP.setFileName(fil);
	  mpAttach.addBodyPart(mBP);
        }
    }
}
mBP = new MimeBodyPart();
mBP.setContent(mpAttach);
mpEmail.addBodyPart(mBP);
message.setContent(mpEmail);

non leggo nemmeno il codice, cosi' da me funziona. javamail 1.4
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(sender));
        message.addRecipient(
Message.RecipientType.TO
, new InternetAddress(recipient));
        message.setSubject(subject);
        Multipart multipart = new MimeMultipart();
        MimeBodyPart messageBodyPart = new MimeBodyPart();
        messageBodyPart.setText(body);
        multipart.addBodyPart(messageBodyPart);
        for (File report : reports) {
            messageBodyPart = new MimeBodyPart();
            messageBodyPart.attachFile(report);
            multipart.addBodyPart(messageBodyPart);
        }
        message.setContent(multipart);
        message.setSentDate(new java.util.Date());
        message.saveChanges();
	Transport.send(message);

 	Transport.send(message);
messageBodyPart.setText(body)
per me "body" e' un HTML, anche per te?

 per me "body" e' un HTML, anche per te?
no

Adesso funziona ...
la parte di codice interesessata e':
...
// Lettura .TXT esterno con HTML
StringBuffer sb = readMail(email);
// Corpo della eMail
MimeBodyPart mBP = new MimeBodyPart();
Multipart mpEmail = new MimeMultipart("email");
mBP.setContent(sb.toString(), "text/html");
mpEmail.addBodyPart(mBP);
// Allego eventuale immagine logo
if (!logo.equals("")) {
     DataSource source = new FileDataSource(logo);
     mBP = new MimeBodyPart();
     mBP.setDataHandler(new DataHandler(source));
     mBP.setHeader("Content-ID", "logo");
     mBP.setFileName(nameFil(logo));
     mpEmail.addBodyPart(mBP);
}
 
// Se ci sono Allegati (Max 10)
if (fileFlag) {
    for (int i = 0; i < 10; i++) {
        if (!vFile[i].equals("")) {
           mBP = new MimeBodyPart();
	  DataSource src = new FileDataSource(vFile[i]);
           mBP.setDataHandler(new DataHandler(src));
           mBP.setFileName(nameFil(vFile[i]));
           mpEmail.addBodyPart(mBP);
        }
    }
}
 
message.setContent(mpEmail);
message.saveChanges();
Transport.send(message);
...
"nameFil" estrae il nome del file dalla String
Grazie comunque