Enviando e-mail com anexo
JavaMail API fornece classes para enviar o e-mail junto com o anexo respeitando as políticas de envio de e-mail, seus protocolos e o formato da mensagem.
O Exemplo abaixo mostra como enviar um e-mail com um arquivo em anexo.
import java.util.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*;
public class sendfile {
public static void main(String[] args) { if (args.length != 5) { System.out.println("usage: java sendfile <to> <from> <smtp> <file>"); System.exit(1); }
String to = args[0]; String from = args[1]; String host = args[2]; String filename = args[3]; String msgText1 = "Enviando arquivo.\n"; String subject = "Enviando arquivo"; // cria algumas propriedades e obtem uma sessao padrao Properties props = System.getProperties(); props.put("mail.smtp.host", host); Session session = Session.getInstance(props, null);
try { // cria a mensagem MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); InternetAddress[] address = {new InternetAddress(to)}; msg.setRecipients(Message.RecipientType.TO, address); msg.setSubject(subject);
// cria a primeira parte da mensagem MimeBodyPart mbp1 = new MimeBodyPart(); mbp1.setText(msgText1);
// cria a segunda parte da mensage MimeBodyPart mbp2 = new MimeBodyPart();
// anexa o arquivo na mensagem FileDataSource fds = new FileDataSource(filename); mbp2.setDataHandler(new DataHandler(fds)); mbp2.setFileName(fds.getName());
// cria a Multipart Multipart mp = new MimeMultipart(); mp.addBodyPart(mbp1); mp.addBodyPart(mbp2);
// adiciona a Multipart na mensagem msg.setContent(mp);
// configura a data: cabecalho msg.setSentDate(new Date()); // envia a mensagem Transport.send(msg); } catch (MessagingException mex) { mex.printStackTrace(); Exception ex = null; if ((ex = mex.getNextException()) != null) { ex.printStackTrace(); } } } |