Não estou conseguindo enviar email com anexo e mensagem juntos

1 resposta
R

Bom dia,

Preciso enviar emails com anexos usando o JavaMail, eu colocava o texto no email no MimeMessage:

msg.setContent (mensagem, "text/plain");

Só que fazendo assim não recebo o anexo, tentei outras maneiras também, só que é a mesma situação, ou eu recebo o anexo ou o texto.Não consegui fazer receber os dois.

Tentei criar um outro MimeMultipart para colocar o texto só que ele veio como anexo, e precisaria que ele ficasse apenas na mensagem.

Segue código abaixo, creio que alguém ja passou por algo semelhante e pode me ajudar

//Objeto que contém a mensagem  
	    	           Message msg = new MimeMessage(session);  
	    	           
	    	           Multipart corpo = new MimeMultipart();

MimeBodyPart relatorioAnexo = new MimeBodyPart();  
	    	           
	    	           try {
	    	        	
	    	        	//adiciona relatório como anexo
						relatorioAnexo.setDataHandler(new DataHandler(new ByteArrayDataSource(bytes, "aplication/pdf")));
						relatorioAnexo.setFileName("Relatorio.pdf"); 
						
						corpo.addBodyPart(relatorioAnexo);
						
	    	           } catch (MessagingException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}  
	    	            
	    	           
	    	           
	    	           try {  
	    	               //Setando o destinatário  
	    	               msg.setRecipient(Message.RecipientType.TO, new InternetAddress(para));  
	    	               //Setando a origem do email  
	    	               msg.setFrom(new InternetAddress(de));  
	    	               //Setando o assunto  
	    	               msg.setSubject(assunto);  
	    	               //Setando o conteúdo/corpo do email  
	    	               msg.setContent(corpo,"aplication/pdf" );
	    	     
	    	           } catch (Exception e) {  
	    	               System.out.println(">> Erro: Completar Mensagem");  
	    	               e.printStackTrace();  
	    	           }

1 Resposta

cristiano.andrade

Tenta fazer assim:

Address[] addresses = array.toArray(new Address[array.size()]);
        message.setRecipients(RecipientType.TO, addresses);

        message.setFrom(origem);
        message.setSubject(msg.getAssunto(), "ISO-8859-1");
        message.setSentDate(new Date());

        Multipart mp = new MimeMultipart();
        MimeBodyPart mbpTexto = new MimeBodyPart();
        mbpTexto.setContent(msg.getTxt(), "text/html; charset=ISO-8859-1");
        mp.addBodyPart(mbpTexto);

        for (Anexo anexo : msg.getAnexos()) {
            MimeBodyPart m = new MimeBodyPart();
            m.setFileName(anexo.getNomeArquivo());
            m.setDataHandler(new DataHandler(new ByteArrayDataSource(anexo.getConteudo(), anexo.getMime())));
            mp.addBodyPart(m);
        }

        message.setContent(mp);

Abraços

Criado 16 de julho de 2009
Ultima resposta 16 de jul. de 2009
Respostas 1
Participantes 2