Problemas com envio de email com arquivo atachado

10 respostas
M

Help me pelo amor de Deus

Problemas com envio de email com arquivo atachado…

Ele não esta enviando nada para o email, se alguem puder me ajudar e detectar onde estou errando,…

Obrigada

<%@ page import=java.util.Properties%>

<%@ page import=java.util.Date%>

<%@ page import=<a href="http://java.io">java.io</a>.<em>"%>

<%@ page import="javax.mail.</em>”%>

<%@ page import=javax.activation.<em>"%>

<%@ page import="javax.mail.internet.</em>”%>

<%@ pageimport=java.util.*%>

<%

boolean isHTML     = true;

String mailBody    = “”;

// Nome ou endereço do servidor de SMTP

String smtpServer  = 172.20.2.182;

// Assunto e Corpo da Mensagem
String mailSubject = “Inclusao Monitor IC”;

// Nome e email do destinatário

String toMail      = [email removido];

String toName      = Radar;
// Nome e email do remetente

String fromMail    = [email removido];

String fromName    = Radar;

String toMailCC = "[email removido]";
//String toMailCC = “[email removido]”;

//String toMailCC = “[email removido]”;

try {

// Configura a sessão
  Properties mailProps = System.getProperties();
  mailProps.put("mail.smtp.host",smtpServer);
  Session mailSession = Session.getDefaultInstance(mailProps, null);
  
  // Configuração da mensagem
  Message message = new MimeMessage (mailSession);
  message.setFrom( new InternetAddress(fromMail,fromName) );
  
  message.setRecipients(Message.RecipientType.CC,InternetAddress.parse(toMailCC,false));
 
  // Configuração do Destinatario
  message.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail,toName) );

  // Configuraçao do cabecalho do email
  message.setSentDate(new Date());
  message.setSubject(mailSubject);

  //------------------
  MimeBodyPart messageBodyPart = new MimeBodyPart();
  
  // Verifica se é um email com corpo escrito em HTML
  if(isHTML==true) {

     // Corpo da mensagem em codigo HTML
     mailBody += "<HTML><BODY><font face="+"Verdana"+" color="+"#333333"+" size="+"2"+">";
	 mailBody += " Radar,<p> Segue dados de Inclusao Monitor IC.<br><p>";
	 mailBody += " Data...................: "   + MONDATA + "<br>";
	 mailBody += " Titulo....................: "   + MONTITU + "<br>";
	 mailBody += " Texto .............: "   + MONTEXT + "<br>";
	 mailBody += " Fonte....................: "   + MONFONT + "<br>";
	 mailBody += " Nome.................: "   + MONNOME + "<br>";
	 mailBody += " Email...............: "   + MONEMAI + "<br>";
	 mailBody += " Anexo...................: "   + MONDOWN + "<br>";
	 mailBody += " Canal...................: "   + MONSEGM + "<br>";
	 mailBody += " Atenciosamente, <p> . ";
	 mailBody += "</font></BODY></HTML>";
     //message.setContent(message.toString(),"text/html");
     //message.setDataHandler(new DataHandler(mailBody,"text/html"));

     messageBodyPart.setContent(message.toString(),"text/html");
     messageBodyPart.setDataHandler(new DataHandler(mailBody,"text/html"));
  } else {
     mailBody = "Exemplo de mensagem em texto...";

     //message.setContent(message.toString(),"text/plain");
     //message.setText(mailBody);

     messageBodyPart.setContent(message.toString(),"text/plain");
     messageBodyPart.setText(mailBody);
  }


  Multipart multipart = new MimeMultipart();
  multipart.addBodyPart(messageBodyPart);

  //- Cria o Attachment

  messageBodyPart = new MimeBodyPart();
  DataSource source = new FileDataSource("http://www.acsp.com.br/radar_acesso/monitor/1.doc");
  messageBodyPart.setDataHandler(new DataHandler(source));
  messageBodyPart.setFileName("1.doc");
  multipart.addBodyPart(messageBodyPart);
	  

  // Put parts in message
  message.setContent(multipart);

  //------------------

  // Envia a mensagem
  Transport.send(message);
  //out.println("<B>Seu email foi enviado com sucesso!</B>");

} catch (Exception e){
// Houston, temos um problema…
System.out.print("


"+ e.toString()+"
");
}

%>

10 Respostas

furutani

A linha

System.out.print("<HR><B>"+ e.toString()+"</B><HR>");

Exibi algum erro?

M

Bom dia, Furutani

Montei esse email sem colocar o atachado ele envia o email, meu problema esta na hora que inserir os códigos de atachar eu acho que por ai esta faltando alguma coisa

Esse código abaixo é sem a parte do atachar.

Ah sua pergunta não me deu nenhum erro

<%@ page import=java.util.Properties%>

<%@ page import=java.util.Date%>

<%@ page import=<a href="http://java.io">java.io</a>.<em>"%>

<%@ page import="javax.mail.</em>”%>

<%@ page import=javax.activation.<em>"%>

<%@ page import="javax.mail.internet.</em>”%>

<%@ pageimport=java.util.*%>

<%
boolean isHTML     = true;

String mailBody    = “”;

// Nome ou endereço do servidor de SMTP

String smtpServer  = 172.20.2.182;

// Empresa e msg

String MONDATA = (String) ((((rs_monitor_data = rs_monitor.getObject(“MONDATA”))==null || rs_monitor.wasNull())?"":rs_monitor_data));

String MONTITU = (String) ((((rs_monitor_data = rs_monitor.getObject(“MONTITU”))==null || rs_monitor.wasNull())?"":rs_monitor_data));

String MONTEXT = (String) ((((rs_monitor_data = rs_monitor.getObject(“MONTEXT”))==null || rs_monitor.wasNull())?"":rs_monitor_data));

String MONNOME = (String) ((((rs_monitor_data = rs_monitor.getObject(“MONNOME”))==null || rs_monitor.wasNull())?"":rs_monitor_data));

String MONEMAI    = (String) ((((rs_monitor_data = rs_monitor.getObject(“MONEMAI”))==null || rs_monitor.wasNull())?"":rs_monitor_data));

String MONFONT    = (String) ((((rs_monitor_data = rs_monitor.getObject(“MONFONT”))==null || rs_monitor.wasNull())?"":rs_monitor_data));

String MONDOWN    = (String) ((((rs_monitor_data = rs_monitor.getObject(“MONDOWN”))==null || rs_monitor.wasNull())?"":rs_monitor_data));

String MONSEGM    = (String) ((((rs_monitor_data = rs_monitor.getObject(“MONSEGM”))==null || rs_monitor.wasNull())?"":rs_monitor_data));

// Assunto e Corpo da Mensagem
String mailSubject = “Inclusao Monitor IC”;

// Nome e email do destinatário

String toMail      = [email removido];

String toName      = Radar;
// Nome e email do remetente

String fromMail    = [email removido];

String fromName    = Radar;

String toMailCC = "[email removido], [email removido]";
//String toMailCC = “[email removido]”;

//String toMailCC = “[email removido]”;

try {

// Configura a sessão
  Properties mailProps = System.getProperties();
  mailProps.put("mail.smtp.host",smtpServer);
  Session mailSession = Session.getDefaultInstance(mailProps, null);
  
  // Configuração da mensagem
  Message message = new MimeMessage (mailSession);
  message.setFrom( new InternetAddress(fromMail,fromName) );
  	
  message.setRecipients(Message.RecipientType.CC,InternetAddress.parse(toMailCC,false));
 
  // Configuração do Destinatario
  message.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail,toName) );

  // Configuraçao do cabecalho do email
  message.setSentDate(new Date());
  message.setSubject(mailSubject);

  // Verifica se é um email com corpo escrito em HTML
  if(isHTML==true) {

     // Corpo da mensagem em codigo HTML
     mailBody += "<HTML><BODY><font face="+"Verdana"+" color="+"#333333"+" size="+"2"+">";
	 mailBody += " Radar,<p> Segue dados de Inclusao Monitor IC.<br><p>";
	 mailBody += " Data...................: "   + MONDATA + "<br>";
	 mailBody += " Titulo....................: "   + MONTITU + "<br>";
	 mailBody += " Texto .............: "   + MONTEXT + "<br>";
	 mailBody += " Fonte....................: "   + MONFONT + "<br>";
	 mailBody += " Nome.................: "   + MONNOME + "<br>";
	 mailBody += " Email...............: "   + MONEMAI + "<br>";
	 mailBody += " Anexo...................: "   + MONDOWN + "<br>";
	 mailBody += " Canal...................: "   + MONSEGM + "<br>";
	 mailBody += " Atenciosamente, <p> . ";
	 mailBody += "</font></BODY></HTML>";
     message.setContent(message.toString(),"text/html");
     message.setDataHandler(new DataHandler(mailBody,"text/html"));
  } else {
     mailBody = "Exemplo de mensagem em texto...";

     message.setContent(message.toString(),"text/plain");
     message.setText(mailBody);
  }

  // Envia a mensagem
  Transport.send(message);
  //out.println("<B>Seu email foi enviado com sucesso!</B>");

} catch (Exception e){
// Houston, temos um problema…
System.out.print("


"+ e.toString()+"
");
}

%>

O
messageBodyPart = new MimeBodyPart();
      DataSource source = new FileDataSource("http://www.acsp.com.br/radar_acesso/monitor/1.doc");
      messageBodyPart.setDataHandler(new DataHandler(source));
      messageBodyPart.setFileName("1.doc");
      multipart.addBodyPart(messageBodyPart);

Duvida: FileDataSource funciona acessando o arquivo via http? O arquivo não está no seu servidor? Por que você não acessa direto?

M

Bom Dia : Oyama

Eu acho que meu erro é ai…

Não sei se estou fazendo o caminho certo, qual sera a funcionalidade desse sisteminha, tenho um formulario na web em jsp, o usuario preencher as informações e anexa um arquivo e me envia, eu aqui na ponta que vou receber esse anexo.

Não dá nenhum erro acessando o http direto, mas tambem não funciona, coloquei um caminho direto, seria isso segue…

e me deu um erro segue…

try {
File file = new File("…/radar_admin/teste.txt");

//- Cria o Attachment
  messageBodyPart = new MimeBodyPart();
  DataSource source = new FileDataSource(file);
  messageBodyPart.setDataHandler(new DataHandler(source));
  messageBodyPart.setFileName(file);
  multipart.addBodyPart(messageBodyPart);

Error 500: Unable to compile class for JSP An error occurred between lines: 50 and 172 in the jsp file: /admin/radar/radar_acspnew/monitor_inserir_ok_comattach.jsp Generated servlet error: C:\web\radar.metadata.plugins\com.ibm.etools.server.core\tmp1\cache\localhost\server1\DefaultEAR\radar.war\admin\radar\radar_acspnew_monitor_5F_inserir_5F_ok_5F_comattach.java:293: Incompatible type for method. Can’t convert java.io.File to java.lang.String. messageBodyPart.setFileName(file); ^ 1 error

O
try {
  File file = new File("../radar_admin/teste.txt");

      //- Cria o Attachment
      messageBodyPart = new MimeBodyPart();
      DataSource source = new FileDataSource(file);
      messageBodyPart.setDataHandler(new DataHandler(source));
      messageBodyPart.setFileName(file);
      multipart.addBodyPart(messageBodyPart);

Error 500: Unable to compile class for JSP An error occurred between lines: 50 and 172 in the jsp file: /admin/radar/radar_acspnew/monitor_inserir_ok_comattach.jsp Generated servlet error: C:\web\radar\.metadata\.plugins\com.ibm.etools.server.core\tmp1\cache\localhost\server1\DefaultEAR\radar.war\admin\radar\radar_acspnew\_monitor_5F_inserir_5F_ok_5F_comattach.java:293: Incompatible type for method. Can't convert java.io.File to java.lang.String. messageBodyPart.setFileName(file); ^ 1 error

É só ver a mensagem de erro: o metodo setFileName tem como parametro uma String e não um File.

PS: Use as tag code para postar os códigos e mensagens de erro. Fica mais fácil a visualização.

M

Boa tarde… Oyama

E como resolver isso, colocando apenas “file”

grata

O

Faz tempo que eu não mexo no javamail, mas pelo o que eu me lembro setFileName serve apenas para setar o nome do attachment. Não precisa ser o nome do arquivo no seu servidor. Coloque qualquer nome de arquivo.

M

Não sei o que rola ele esta me derrubando o websphere e todos meus aplicativos, vc sabe o que pode ser???

MISTERIO…

<%@ page import="java.util.Properties"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.io.*"%>
<%@ page import="javax.mail.*"%>
<%@ page import="javax.activation.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ pageimport="java.util.*"%>

<%
 
  boolean isHTML     = true;
  String mailBody    = "";
    // Nome ou endereço do servidor de SMTP
  String smtpServer  = "172.20.2.182";
  
  // Empresa e msg
  
   String MONDATA = (String) ((((rs_monitor_data = rs_monitor.getObject("MONDATA"))==null || rs_monitor.wasNull())?"":rs_monitor_data)); 
   String MONTITU = (String) ((((rs_monitor_data = rs_monitor.getObject("MONTITU"))==null || rs_monitor.wasNull())?"":rs_monitor_data)); 
   String MONTEXT = (String) ((((rs_monitor_data = rs_monitor.getObject("MONTEXT"))==null || rs_monitor.wasNull())?"":rs_monitor_data)); 
   String MONNOME = (String) ((((rs_monitor_data = rs_monitor.getObject("MONNOME"))==null || rs_monitor.wasNull())?"":rs_monitor_data));  
    String MONEMAI    = (String) ((((rs_monitor_data = rs_monitor.getObject("MONEMAI"))==null || rs_monitor.wasNull())?"":rs_monitor_data)); 
   String MONFONT    = (String) ((((rs_monitor_data = rs_monitor.getObject("MONFONT"))==null || rs_monitor.wasNull())?"":rs_monitor_data)); 
   String MONDOWN    = (String) ((((rs_monitor_data = rs_monitor.getObject("MONDOWN"))==null || rs_monitor.wasNull())?"":rs_monitor_data));    
   String MONSEGM    = (String) ((((rs_monitor_data = rs_monitor.getObject("MONSEGM"))==null || rs_monitor.wasNull())?"":rs_monitor_data)); 
  
 
   
   // Assunto e Corpo da Mensagem
  String mailSubject = "Inclusao Monitor IC";
 
   // Nome e email do destinatário
  String toMail      = "[email removido]"; 
  String toName      = "Radar";
 
 
  // Nome e email do remetente
  String fromMail    = "[email removido]"; 
  String fromName    = "Radar";
  
  
  String toMailCC    = "[email removido], [email removido]";
//String toMailCC    = "[email removido]";
 
  
//String toMailCC    = "[email removido]";
 
  
 
 try {
  
      // Configura a sessão
      Properties mailProps = System.getProperties();
      mailProps.put("mail.smtp.host",smtpServer);
      Session mailSession = Session.getDefaultInstance(mailProps, null);
      
	  // Configuração da mensagem
      Message message = new MimeMessage (mailSession);
      message.setFrom( new InternetAddress(fromMail,fromName) );
      
      message.setRecipients(Message.RecipientType.CC,InternetAddress.parse(toMailCC,false));
	 
	  // Configuração do Destinatario
      message.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail,toName) );

      // Configuraçao do cabecalho do email
      message.setSentDate(new Date());
      message.setSubject(mailSubject);
  
      //------------------
      MimeBodyPart messageBodyPart = new MimeBodyPart();
      
      // Verifica se é um email com corpo escrito em HTML
      if(isHTML==true) {

         // Corpo da mensagem em codigo HTML
         mailBody += "<HTML><BODY><font face="+"Verdana"+" color="+"#333333"+" size="+"2"+">";
		 mailBody += " Radar,<p> Segue dados de Inclusao Monitor IC.<br><p>";
		 mailBody += " Data...................: "   + MONDATA + "<br>";
		 mailBody += " Titulo....................: "   + MONTITU + "<br>";
		 mailBody += " Texto .............: "   + MONTEXT + "<br>";
		 mailBody += " Fonte....................: "   + MONFONT + "<br>";
		 mailBody += " Nome.................: "   + MONNOME + "<br>";
		 mailBody += " Email...............: "   + MONEMAI + "<br>";
		 mailBody += " Anexo...................: "   + MONDOWN + "<br>";
		 mailBody += " Canal...................: "   + MONSEGM + "<br>";
		 mailBody += " Atenciosamente, <p> . ";
		 mailBody += "</font></BODY></HTML>";
         //message.setContent(message.toString(),"text/html");
         //message.setDataHandler(new DataHandler(mailBody,"text/html"));

         messageBodyPart.setContent(message.toString(),"text/html");
         messageBodyPart.setDataHandler(new DataHandler(mailBody,"text/html"));
      } else {
         mailBody = "Exemplo de mensagem em texto...";

         //message.setContent(message.toString(),"text/plain");
         //message.setText(mailBody);

         messageBodyPart.setContent(message.toString(),"text/plain");
         messageBodyPart.setText(mailBody);
	  }


      Multipart multipart = new MimeMultipart();
      multipart.addBodyPart(messageBodyPart);

     	 
	 
	  //- Cria o Attachment
      //File file = new File("../radar_admin/teste.txt");
	  
	  System.out.println("***** antes de criar o anexo *****");
	  messageBodyPart = new MimeBodyPart();
      DataSource source = new FileDataSource("../radar_admin/teste.txt");
      messageBodyPart.setDataHandler(new DataHandler(source));
      messageBodyPart.setFileName("teste.txt");
	  multipart.addBodyPart(messageBodyPart);
      System.out.println("***** depois de criar o anexo *****");
	  

      // Put parts in message
      message.setContent(multipart);
   
      //------------------

      // Envia a mensagem
      Transport.send(message);
	  //out.println("<B>Seu email foi enviado com sucesso!</B>");
      
  } catch (Exception e){ 
	  // Houston, temos um problema...
	  System.out.print("<HR><B>"+ e.toString()+"</B><HR>");
 	  System.exit(0);
  }
  
%>

[2/1/07 19:02:12:736 GMT-03:00] 1c145108 WebGroup I SRVE0180I: [Painel] [/radar] [Servlet.LOG]: SimpleFileServlet: destroy

[2/1/07 19:03:12:846 GMT-03:00] 1c145108 WebGroup I SRVE0180I: [Painel] [/radar] [Servlet.LOG]: JSP 1.2 Processor: destroy

[2/1/07 19:03:12:893 GMT-03:00] 1c145108 ApplicationMg A WSVR0220I: Application stopped: DefaultEAR

[2/1/07 19:03:12:893 GMT-03:00] 1c145108 ApplicationMg A WSVR0217I: Stopping application: IBMUTC

[2/1/07 19:03:12:893 GMT-03:00] 1c145108 WebContainer A SRVE0170I: Stopping Web Module: IBM Universal Test Client.

[2/1/07 19:03:12:893 GMT-03:00] 1c145108 WebGroup I SRVE0180I: [IBM Universal Test Client] [/UTC] [Servlet.LOG]: SimpleFileServlet: destroy

[2/1/07 19:03:12:893 GMT-03:00] 1c145108 WebGroup I SRVE0180I: [IBM Universal Test Client] [/UTC] [Servlet.LOG]: JSP 1.2 Processor: destroy

[2/1/07 19:03:12:909 GMT-03:00] 1c145108 ApplicationMg A WSVR0220I: Application stopped: IBMUTC

[2/1/07 19:03:13:315 GMT-03:00] 1c145108 ServerCollabo A WSVR0024I: Server server1 stopped

O

Bem, agora o erro é mais “avançado”. Teria que verificar mais logs do Websphere para identificar o problema. Deve ter um log especifico da aplicação, pois o log que você colocou aqui não mostra a causa do erro.

Independente disto, eu recomendo você alterar este seu JSP e tentar colocar este seu código em um servlet. Deixe somente a parte de visualização no JSP. Recomendo usar algum framework Web.

E não use System.out.println para “debugar” o seu código. Use alguma biblioteca de log (recomendo o log4j).

N

Prezados, fiz um direcionador de email simples para desktop, porém preciso ao clicar no botão usando o JFileChooser, guardar o arquivo em um JTextField, como no outlook, e depois sim enviar o aquivo anexado.

Criado 31 de janeiro de 2007
Ultima resposta 9 de mar. de 2007
Respostas 10
Participantes 4