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.
publicstaticvoidsendEmail(List<String>to,Stringsubject,Stringbody){Propertiesp=getProps();Authenticatorauth=newSMTPAuthenticator();Sessionsession=Session.getInstance(p,auth);MimeMessagemsg=newMimeMessage(session);try{// "de" e "para"!!msg.setFrom(newInternetAddress("[email removido]"));InternetAddress[]emails=newInternetAddress[to.size()];inti=0;for(Iteratoriterator=to.iterator();iterator.hasNext();){StringtoAddr=(String)iterator.next();emails[i]=newInternetAddress(toAddr);i++;}//msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email removido]"));msg.setRecipients(Message.RecipientType.TO,emails);msg.setSentDate(newDate());msg.setSubject(subject);msg.setText(body);// enviando mensagemTransport.send(msg);}catch(AddressExceptione){e.printStackTrace();}catch(MessagingExceptione){e.printStackTrace();}System.out.println("Enviado com sucesso!");}
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.