[Resolvido] Problema no Envio de Email: Mensagem em Branco

2 respostas
franzzita

Bom dia Pessoal,

Estou com problema no envio de Emails, tudo está configurado corretamente, ele envia o Email, mas o anexo (.pdf) no Email fica com o nome do diretório onde foi salvo o arquivo + o nome do arquivo. Outro problema é que a mensagem informada no JTextPane não aparece no Email.

Esse é o código que estou utilizando...

package Utilitários;

import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.swing.JOptionPane;

public class Email
{
    Properties p = new Properties();      
    Session session = Session.getInstance(p, null);  
    MimeMultipart mp = new MimeMultipart();  
    
    //passagem de parâmetros com dados fornecidos pelo usuário
    public Email(String caminho, String remetente, String destino, String titulo, String mensagem) 
    {
        try 
        {  
                    p.put("mail.smtp.host", "smtp.meu-web-mail.com.br");  //no meu-web-mail fica o nome do email da empresa
                    
                    MimeMessage msg = new MimeMessage(session);  
                    
                    // avalia se o email existe com o internet adress
                    msg.setFrom(new InternetAddress(remetente));  //quem envia
                    msg.setRecipient(Message.RecipientType.TO, new InternetAddress(destino)); //quem recebe
                    
                    //data atual
                    msg.setSentDate(new Date());

                    //titulo do email
                    msg.setSubject(titulo);

                    //mensagem de email
                    msg.setText(mensagem);
                    
                    msg.setContent(mp);  

                    FileDataSource ds = new FileDataSource(caminho);  
                    MimeBodyPart mbp = new MimeBodyPart();  
                    mbp.setDataHandler( new DataHandler(ds) );  
                    mbp.setFileName(caminho);
                    mp.addBodyPart(mbp);  
                    
                    // enviando mensagem (tentando)  
                    System.out.println("Enviando mensagem...");
                    
                    Transport.send(msg);  
                    
                    System.out.println("Mensagem enviada com sucesso!");
                    JOptionPane.showMessageDialog(null,"Mensagem enviada com sucesso!");
        }  
        catch (AddressException e) 
        {  
            JOptionPane.showMessageDialog(null,"Endereço de Email não é valido!");
            e.printStackTrace();
        }  
        catch (MessagingException e) 
        {  
            JOptionPane.showMessageDialog(null,"Mensagem de Email não foi criada!"); 
            e.printStackTrace();
        }
    }
}

Se alguém sabe o que pode estar acontecendo...
Aguardo uma resposta...

Obrigada!

2 Respostas

franzzita

Consegui resolver o problema com o nome do Anexo:

Passei mais um parâmetro para o método, o parâmetro com o nome do arquivo:

public Email(String caminho, String remetente, String destino, String titulo, String mensagem, String nomeArquivo)

E modifiquei nessa parte do código:

mbp.setFileName(nomeArquivo);

Alguém sabe porque a mensagem está sendo encaminhada em BRANCO?

franzzita

Resolvido

Modifiquei meu código conforme esse código que encontrei na net!

Se alguém precisar, tai a resposta!

Criado 5 de janeiro de 2012
Ultima resposta 5 de jan. de 2012
Respostas 2
Participantes 1