Arquivo em anexo [RESOLVIDO]

Olá pessoa,

Estou com o seguinte problema com o código abaixo: Consigo enviar a mensagem de email, mas o anexo não está sendo enviado (Estou testando no NetBeans). Agradeço desde já qualquer ajuda.

[quote]package br.com.wf7.modelo;

import java.util.Properties;
import javax.activation.CommandMap;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.activation.MailcapCommandMap;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class SendMail {

private String host = "smtp.com.br"; /* endereço do servidor smtp */

public class SMTPAuthenticator extends Authenticator {
    @Override
    public PasswordAuthentication getPasswordAuthentication() {
        String username = "teste@teste.com.br";
        String password = "******";
        return new PasswordAuthentication(username, password);
    }
}

public void EnviarEmailPara(String para, String assunto, String mensagem) throws Exception {
    String from = "teste@unicursoscampinas.com.br";
    String fileAttachment = "C:/teste.txt";

    Properties mailProps = System.getProperties();

    mailProps.put("mail.smtp.host", this.host);

    Authenticator auth = new SMTPAuthenticator();
    Session session = Session.getDefaultInstance(mailProps, auth);

    mailProps.put("mail.smtp.auth", "true");//Deixe true para enviar email autenticado
    mailProps.put("mail.debug", "true");
    mailProps.put("mail.smtp.debug", "true");
    mailProps.put("mail.mime.charset", "ISO-8859-1");
    mailProps.put("mail.smtp.port", "25");

    MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();
    mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
    mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
    mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
    mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
    mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
    CommandMap.setDefaultCommandMap(mc);

    // Definir mensagem
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.addRecipient(Message.RecipientType.TO,new InternetAddress(para));
    message.setSubject(assunto);


    // Criar parte da mensagem
    MimeBodyPart messageBodyPart = new MimeBodyPart();

    // Texto da mensagem
    messageBodyPart.setText(mensagem);

    // Criar parte de arquivo anexado
    MimeBodyPart messageBodyPart2 = new MimeBodyPart();
    FileDataSource source = new FileDataSource(fileAttachment);
    messageBodyPart2.setDataHandler(new DataHandler(source));
    messageBodyPart2.setFileName("teste");

    // cria a Multipart
    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);
    multipart.addBodyPart(messageBodyPart2);//Adiciona anexo

    // Enviar parte da mensagem
    message.setContent(multipart);

    message.setContent(mensagem.toString(), "text/html");

    // Enviar toda a mensagemSend the message
    Transport.send(message);
}

}[/quote]

1 curtida

Achei o problema. Esqueci de comentar ou apagar a linha “message.setContent(mensagem.toString(), “text/html”);” no final do script.

1 curtida

Coloca Resolvido no título do tópico!

vlw