Solución:
Bueno, ha pasado un tiempo desde que hice el trabajo de JavaMail, pero parece que podrías repetir este código varias veces:
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
Por ejemplo, podría escribir un método para hacerlo:
private static void addAttachment(Multipart multipart, String filename)
{
DataSource source = new FileDataSource(filename);
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
}
Luego, desde su código principal, simplemente llame:
addAttachment(multipart, "file1.txt");
addAttachment(multipart, "file2.txt");
etc
ACTUALIZACIÓN (marzo de 2020)
Con lo ultimo API JavaMail ™ (versión 1.6 por el momento, JSR 919), las cosas son mucho más simples:
void attachFile(File file)
void attachFile(File file, String contentType, String encoding)
void attachFile(String file)
void attachFile(String file, String contentType, String encoding)
Lectura útil
Aquí hay un tutorial agradable y directo con el ejemplo completo:
- JavaMail: cómo enviar correo electrónico con archivos adjuntos
Multipart mp = new MimeMultipart();
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setContent(body,"text/html");
mp.addBodyPart(mbp1);
if(filename!=null)
{
MimeBodyPart mbp2 = null;
FileDataSource fds =null;
for(int counter=0;counter<filename.length;counter++)
{
mbp2 = null;
fds =null;
mbp2=new MimeBodyPart();
fds = new FileDataSource(filename[counter]);
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());
mp.addBodyPart(mbp2);
}
}
msg.setContent(mp);
msg.setSentDate(new Date());
Transport.send(msg);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)