Boa tarde! Implementei minha classe Email pra mandar emails, duh! Tá funcionando legal, só que agora queria também enviar um anexo junto com a mensagem. Alguma luz? Estou usando struts 2 e java 6.
[code]public static void sendEmail(List to, String subject, String body) {
Properties p = getProps();
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(p, auth);
MimeMessage msg = new MimeMessage(session);
try {
// "de" e "para"!!
msg.setFrom(new InternetAddress("mdapp@mobilescience.mobi"));
InternetAddress [] emails = new InternetAddress[to.size()];
int i = 0;
for (Iterator iterator = to.iterator(); iterator.hasNext();) {
String toAddr = (String) iterator.next();
emails[i] = new InternetAddress(toAddr);
i++;
}
//msg.setRecipient(Message.RecipientType.TO, new InternetAddress("henriqueor@terra.com.br"));
msg.setRecipients(Message.RecipientType.TO, emails);
msg.setSentDate(new Date());
msg.setSubject(subject);
msg.setText(body);
// enviando mensagem
Transport.send(msg);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
System.out.println("Enviado com sucesso!");
}[/code]
Mandar anexos é possível com o JavaMail puro, mas requer você ler atentamente tanto a documentação do javamail, quanto você entender o formato MIME, o que provavelmente irá requerer você ler algumas RFCs e fazer muitos testes para ver se está funcionando tudo direitinho (acredite, eu já fiz isso e é muito chato).
Se você não tiver tanta paciência ou tempo assim, use o Jakarta Apache Commons Email, que é um encapsulamento do JavaMail de forma que você não precisa conhecer esses detalhes sangrentos.